Tech Racho エンジニアの「?」を「!」に。
  • インフラ

opensslコマンドでSSL証明書の正当性を確認する

サーバにSSL証明書をインストールしても、
Webブラウザだけだと中間証明書が正しくインストールされているかどうか不安になりますよね?
最近のブラウザだと同梱されている証明書が多いため、本当に中間証明書が参照されているか分からないためです。

そんな時はopensslのs_clientで証明書の正当性を確認すると確実です

1. 主要な証明書のインストール
Debian系ならaptで主要な証明書をダウンロードできます
インストールすると「/usr/share/ca-certificates/mozilla」に証明書が入ります

# apt-get install ca-certificates

2. opensslコマンド
後はopensslコマンドで繋いでみます
例えば、example.comの証明書が以下の階層構造になっていたとします
EquifaxがGeoTrustを証明し、GeoTrustがRapidSSLを証明し、RapidSSLがexample.com(あなたのサイト)を証明していたとします

 Equifax
 `-- GeoTrust Inc
     `-- RapidSSL
         `-- www.example.com (あなたのサイト)

この場合は最初から信頼するのはEquifax(ルート証明書)なので、こんな感じのコマンドで確認します

$ openssl s_client \
-CAfile /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt \
-connect www.example.com:443

3. 結果の確認
Certificate chainの部分で証明書の連鎖を確認できます。
あとは最後の方に表示される「Verify return code: 0 (ok)」を確認しましょう。
有効期限や、中間証明書の正当性を含めたSSLセッションが正しいと0になるはずです。

その他の方法として、証明書をチェックしてくれるWebサービスを利用するのも良いかもしれません
http://www.atmarkit.co.jp/fwin2k/win2ktips/1406sslchk/sslchk.html


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。