SSLサーバ証明書の設定確認、中間CAの設定ミスを発見する

  • 90
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

SSLサーバ証明書の設定で一番やらかしがちなのは中間CA証明書の設定ミスです。

PCブラウザでの鍵マーク確認だけじゃダメ!

いまどきのPCブラウザだと証明書に記載されている Authority Information Access 拡張フィールドから中間CA証明書を自動DLしてくれたりキャッシュしたりする機能がある為、サーバに中間CA証明書が正しく設定されていなくても問題なく閲覧出来てしまう。
便利だが、それ故に確認ツールとしてブラウザを使ってしまうと中間CA証明書の設定漏れに気が付かずに置かれた結果、中間CA証明書の自動DL機能のない(主には)携帯端末などからアクセスできなくなって初めて設定漏れに気付く。
なんてことがよくあるのでブラウザじゃなくちゃんとした手順で確認することを覚えましょう!

SSLサーバ証明書チェッカー

認証局がチェッカサイトを提供しているのでこれを使うのが一番簡単で確実だと思います。以下は提供元とロゴが違うだけで基本的には同じアプリによってチェックしているようで、出力もどこ使っても同じようです。ていうか厳密にはサーバはアプリを配布してるだけで実際のチェックはローカル環境のJavaが行ってる模様。

結果は大体一目瞭然で親切。

  • 緑なら問題なし
  • 赤なら致命的な設定ミスがある
  • オレンジなら致命的ではないけど直した方が良い設定がある(中間CAとして余計な証明書が混ざってるとか)

赤かオレンジが出た場合も、問題の詳細や対応方法まで教えてくれるので非常に便利です。

opensslを使って手動でチェック

の手順を書こうと思ったんだけど上述の証明書チェッカーが結構優秀なのでこれ使えばいいんじゃね?
ということで暇が出来たらマニュアル確認方法も調べて書くかもしれない…。

中間CA証明書が複数ある場合の設定方法

例えばある認証局でSSL証明書を発行してもらったら以下の様な証明書チェーンになってたとします。

証明書チェーン
Root CA Certificate - AddTrustExternalCARoot.crt
└Intermediate CA Certificate - COMODORSAAddTrustCA.crt
  └Intermediate CA Certificate - COMODORSADomainValidationSecureServerCA.crt
    └Your PositiveSSL Certificate - example_com.crt

この場合、

  • example_com.crt は自分用に発行された証明書であり、中間CA証明書ではありません。
  • 残りの3つが認証局の証明書ですが、RootCA証明書は各クライアントが持ってるべきもので中間CA証明書ではありません。
  • RootCAと自分用の証明書以外の間の2つが中間CA証明書です。
    • 中間CA証明書が無くて、RootCAから直接発行されることもあります。その場合は中間CA証明書の設定は不要です。
  • サーバに中間CA証明書として設定するにはこの2つを繋げて1つのファイルにしたものを使います。その際のつなげる順番は自分用証明書から逆順にたどる順番がベター。
    • 上記チェーン例では以下のように作ります。cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > example_com.ca_bundle
    • 出来た example_com.ca_bundle (ファイル名は適当)を中間CA証明書として設定してやればOKです。

脆弱性対応チェックもやるといいよ!

これもやろう。
SSL Server Test (Powered by Qualys SSL Labs)

自動化した!

SSLサーバ証明書の中間CA証明書集めを自動化した - Qiita を参照。
コレ使えば、サーバ証明書を与えると中間CA証明書が出来ます。