TenForward

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

ネームベースの VirtualHost で SSL/TLS

ネームベースのヴァーチャルホストで SSL/TLS を実現する場合,

と方法があるのはご存知の方も多いかと.

で,ワイルドカード証明書は以前,自分のオレオレ CA で発行して,自分のサーバで試してましたが (コレで運用してた),今度は subjectAltName で試してみようって事で試してみました.

出来て当たり前の事なので,目新しいことは何もありません.(^_^;)

openssl を使いますが,CSR の発行は普通通りやりました (ここで-extensions オプションを用いて,あらかじめ設定ファイルで指定してあったextension の内容を含めることも可能かも.未確認).

普通は extension の値を openssl の設定ファイルにセクションとして書いておいて,"-extensions" オプションで,そのセクションを指定して,証明書に記述する内容を決めますが,今回は外部ファイルに出してみました.

basicConstraints                = CA:FALSE
keyUsage                        = digitalSignature, keyEncipherment
extendedKeyUsage                = serverAuth
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid,issuer:always
subjectAltName                  = DNS:tara.harp.gr.jp

というファイルを用意します.ここで書く内容については,
http://www.openssl.org/docs/apps/x509v3_config.html を参照.で Subject Alternative Name については,"DNS" のキーワードを指定して,その後にネームベースの VirtualHost の対象としたいホスト名を書きます.

Subject Alternative Name で指定出来るモノについては,RFC3280の4.2.1.7に記述があります (ここでは定義の dNSName を使用ということです).

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

という風に指定します.

これで

# openssl x509 -noout -text -in cert.pem
   : (snip)
        Subject: C=JP, ST=Kyoto, O=Ireland Circle, CN=athlone.harp.gr.jp
   : (snip)
            X509v3 Subject Alternative Name:
                DNS:tara.harp.gr.jp

という証明書が発行出来ました.

Firefox と IE6 で tara.harp.gr.jp に接続して試してみましたが,どちらでも問題なく接続出来ました (オレオレなので CA に対する警告は出たけど).