Ikeda->Weblog();

Ikedaの徒然雑記。

[メモ] nginx に中間CA証明書をインストールする

| 0件のコメント

[] に中間CA証明書をインストールするすぐ忘れてしまいそうなのでメモ。

 

あ、ご無沙汰してます@ikedaです。

RHETOLOベータリリースで落ち着くかと思いきや、やるべきこと・やりたいことが山積みで相変わらずな状態ですorz

 

さて、そのRHETOLOのhttps接続用にGeoTrustのサーバ証明を使っているんですが、初めてhttps接続する時に「接続の安全性を確認できません」と火狐君に怒られる、という現象が報告されました(´・ω・`)

 

調べてみると、GeoTrust社のサーバ証明書はルートCAを含め3階層もしくは4階層になっていて、どうやらこの2階層目・3階層目の中間CA証明書が火狐君にインストールされていない場合に警告されるようです。

 

ということで、nginxに中間CA証明書をインストールしてみました。


まず、GeoTrustから中間CA証明書を取得してファイルに保存しておきます。
CA証明書はWebで公開されてますね。

 

Apache(mod_ssl)の場合 SSLCertificateChainFile ディレクティブがあるのでここに中間CA証明書ファイルを設定すればOKですが、nginxには証明書チェインを直接指定するディレクティブはありません。

 

nginxの場合、

サーバ証明書: server.crt
中間CA証明書(1階層目): ca_1st.crt
中間CA証明書(2階層目): ca_2nd.crt

だとすると

cat server.crt ca_2nd.crt ca_1st.crt > server.pem

と、サーバ証明書と中間CA証明書を単純に連結したファイルを

ssl_certificate  /path/to/server.pem;

と指定するだけでOKのようです。

 

server.pem内の証明書の順番に規定があるのかどうか不明ですが、通常ブラウザは階層の下(サーバ証明書側)から順番に上に証明書チェインをたどっていく、ということなので、

 

—–BEGIN CERTIFICATE—–
[サーバ証明書]
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
[中間証明書(2階層目)]
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
[中間証明書(1階層目)]
—–END CERTIFICATE—–

 

としてみました。

これで大丈夫かなー(´・ω・`)

コメントを残す