Nwht0xn1

Nginxのssl_certificateとssl_trusted_certificateに指定した証明書Created on 2016-05-22 by r7kamura

Nginxの設定

ssl_certificateにはルート証明書以外を結合したもの、ssl_trusted_certificateには末端の証明書以外を結合したものを指定する。例えば、wikihub.com のアプリケーションサーバのNginxには次のように設定されている。

ssl_certificate /etc/nginx/wikihub-io-fullchain-without-root.crt;
ssl_trusted_certificate /etc/nginx/wikihub-io-fullchain-without-anchor.crt;

証明書の作成

それぞれの証明書のファイルは以下のように結合して生成した。

cat STAR_wikihub_io.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > wikihub-io-fullchain-without-root.crt
cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > wikihub-io-fullchain-without-anchor.crt

なお、それぞれのファイルはCOMODO SSLから受け取ったもので、それぞれの内訳は以下の通りだと認識している (リストは末端に近い順に記載している)。

  • STAR_wikihub_io.crt - *.wikituh.io 用のサイト証明書
  • COMODORSADomainValidationSecureServerCA.crt - 中間証明書その1
  • COMODORSAAddTrustCA.crt - 中間証明書その2
  • AddTrustExternalCARoot.crt - ルート証明書

ssllabs.com での検査

https://www.ssllabs.com/ で検査すると、Nginxで言うssl_trusted_certificate用の Server Key and Certificate #1 というグループと、Nginxで言うssl_certificate用の Additional Certificates (if supplied) というグループが現れる。モバイル端末などとサーバとの間の (サーバ間通信ではない) 通信には、 ssl_certificate が利用される。

ssl_certificateに指定するものにはルート証明書を含める必要はないが、これを含んでいると、ssllabsの測定では "Chain issues: Contains anchor" という項目で赤く警告されてしまう。実際WikiHubのものも最初はルート証明書を含んでこの警告が出ていたが、ルート証明書を取り除いてから直後に再検査すると警告が消えた。

参考リンク