TenForward

技術ブログ。はてなダイアリーから移転しました

ネームベースの VirtualHost で SSL/TLS (5)

(19:53 更新)

以前やったネームベースの VirtualHost で SSL/TLSと同じ事なんですが,subjectAltName に IP アドレスを入れて,更にそれを IIS に読み込ませるという事をやったので,メモ.

以前と同様に,外部ファイルを作りました (この外部ファイルが ca コマンドでしか読めないのはなぜ? req コマンドで指定してもよさげ).

IPアドレスでアクセスするので,以下のように subjectAltName も "IP" を指定してやってみました.これだと Firefox2 だと問題なく全てのアドレスでアクセス出来ましたが,IE6 と Opera9 だと,証明書内の名前とアクセスしようとしているサーバ名が違う,というような警告が出ます.

basicConstraints                = CA:FALSE
keyUsage                        = digitalSignature, keyEncipherment
extendedKeyUsage                = serverAuth
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid,issuer:always
subjectAltName                  = IP:192.168.0.1,IP:192.168.0.2,IP:192.168.0.3

なので,結局 以前 と同様で

basicConstraints                = CA:FALSE
keyUsage                        = digitalSignature, keyEncipherment
extendedKeyUsage                = serverAuth
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid,issuer:always
subjectAltName                  = DNS:192.168.0.1,DNS:192.168.0.2,DNS:192.168.0.3

としました.でも IP アドレスを入れているのだし,"IP" が正しいような気がするけど...

で,同様に

# openssl ca -config /path/to/config -in csr.pem -out cert.pem -extfile /path/to/extfile

とすると,

X509v3 Subject Alternative Name:
    DNS:192.168.0.1, DNS:192.168.0.2, DNS:192.168.0.3

となりました.ちなみに "IP" を指定したときは,以下のようになってました.

X509v3 Subject Alternative Name:
    IP Address:192.168.0.1, IP Address:192.168.0.2, IP Address:192.168.0.3

あとは pkcs12 形式に変換 (これ使うの久々だ).

$ openssl pkcs12 -export -inkey key.pem -in cert.pem -out cert.p12

IIS にインポートする方法は

なんかを参照.