2009年03月13日

IIS で SSL するなら certreq.exe が素敵

Windows Server には certreq なんてコマンドがあったんですね
IIS 使っていいて SSL サーバ証明書を導入しようとしたときに
CSR を作るウィザードとか出てくると思うんですが
その API をコマンドラインから叩けるものみたいです
別件で検索してたら
というページを拝見しまして
を見ながらいじってみました。

作ってみた inf ファイルはこんな感じ
[NewRequest]
Subject = "C=JP,ST=Tokyo,L=Chiyoda-ku,O=SSL-PKI,CN=ssl-pki.seesaa.net"
Exportable = TRUE
KeyLength = 2048
MachineKeySet = TRUE
SMIME = FALSE
比較的ミニマルな感じで作ってみました。
Subject の RDN の区切り文字が "," なんですよね。
これは IIS のウィザードでも "," が入力できないのと対応しています。

これを test.inf という名前で保存して
> certreq -new test.inf test.csr
とコマンドを打つと test.csr に CSR が書き出されます。
秘密鍵は Windows の奥底に保存されて眠っているはず。
RFC 5280 のことは考えず、とりあえず署名して証明書作ります。
ここは慣れてるので OpenSSL で
$ openssl req -x509 -new -out CA.crt -keyout CA.key
$ openssl x509 -req -in test.csr -CA CA.crt -CAkey CA.key -set_serial 37 -out test.crt
これで test.crt という証明書ができました。

最後にこれを Windows にインストールします
> certreq -accept test.crt
これで「保留中の要求を処理し、証明書をインストールする」と同じ状態になります。
「IIS マネージャ」の「サイトのプロパティ」の「ディレクトリセキュリティ」の「サーバ証明書」から
「既存の証明書を利用」とか「現在の証明書を置き換える」を選ぶと
test.crt も一覧の中に出てきます。
今回はここで止めてしまったんですがこれだとルート証明書が無くてちょっと良くないかも。
まぁ、実際はルート証明書とか中間認証局の証明書もインストールしましょう。

IIS で SSL するだけなら簡単なんですが
CSR とサイトが紐付いてしまっているうえに
「更新」で Subject の Distinguished Name や鍵長が変更できなかったり
不自由な部分があるんですけど certreq.exe を使えば分離できて happy な感じ。
もしかしたらウィザード自体が個別に呼べたりするなら何の問題も無いんですけど。
変に CSR 作って証明書入れるだけの為にサイト作るよりはこっちがスマートだなぁ。
ラベル:CSR IIS Windows ssl
posted by OJH at 00:41| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。