サーバにSSLの設定を適用する上で、設定すべき項目は多いし、間違えばセキュリティ的にまずいことになってしまう、あるいは正常に接続できないなど、なかなかややこしいものです。
幸い、そのようなSSLの設定を検証するサービスがあります。
SSL Labs
SSL Labsは、Qualysというセキュリティ会社が運営している、SSL関連の便利サイトです。右上にある「Test Your server」からサーバのテストモードに入れます。
なお、具体例がないとわかりづらいかと思いますので、ここから先はqiita.com
をチェックした結果を見ていくことにしましょう。
サーバのチェック
同じドメインでいくつかサーバがある場合、まずはサーバを選択する画面が出ます(評価はサーバごとに行います)。サーバを選べば、通信を行って、SSLの設定を評価していきます。
総合評価
qiita.com
では「A」ですが、「A+」「A」「A-」「B」「C」「D」「F(致命的に設定がまずい)」「T(証明書が通らない)」のように分かれています。その右側には、「Certificate」「Protocol Support」「Key Exchange」「Cipher Strength」の4つの評価軸で、点数が振られています。
なお、こういう評点を振る系のサービスではよくある話ですが、点数を上げること自体を目的としないようにしましょう。とりわけ、サーバの設定である以上クライアントがあってのものですので、過剰に制限をかけた設定しにしてしまって、クライアントから繋がらなくなれば本末転倒です。
証明書(Certificate)
次に出てくるのは証明書の詳細です。発行元、発行日、コモンネーム、署名アルゴリズムなどが確認できます。また、同時に送ってくる中間証明書についてもチェックできます(間違えてルート証明書まで送信していると、「Contains Anchor」と出ます)。
接続状況
次に出てくるConfigurationでは、まずSSL/TLSの各バージョンへの対応状況が出ます。そして、次にCipherSuiteのリストが出てきますが、3DESのような強度が不十分なものには「WEAK」、輸出暗号やDES、RC4など破られているものには「INSECURE」と出ます。
そこに続くのは、各ブラウザの対応した暗号で接続を試みた場合の状況です。一致する暗号がない、SNIが必要だけどクライアントが非対応なものにはその旨が出ます。古い端末でも接続性を保ちたい、となればこうした情報も参考になるかと思います。
次に、サーバ設定や脆弱性の対応状況が出ます。BEAST、POODLE、CRIME、Heartbleedなどもカバーしていますし、HSTSやキーピンニングの設定も確認できます。
いちばん下はSSLと関係ありませんが、HTTP接続に関する情報が表示されます。