下記の記事で、以前サーバ証明書の作成方法を説明しました。
CentOS6 / Ubuntu14.04 でのサーバ証明書の作成方法
さて、作成した証明書が正しく出来たかのチェックですが、運用状態のサーバで、むやみに証明書を設定したりも出来ません。
また、テストの為だけに実際に Apacheへ設定したりなどすることも面倒です。
しかし、証明書作成に使用したopensslコマンドには、手軽にチェックできる方法が用意されています。
下記コマンドを実行します。実行はルートでなくとも、一般ユーザでもOKです。
server.crt、server.key はそれぞれ、サーバ証明書、サーバ用秘密鍵です。
CentOS6 / Ubuntu14.04 でのサーバ証明書の作成方法 で作成した場合は、下記の例のファイル名そのままでOKです。
openssl s_server -cert server.crt -key server.key -www
指定した証明書を使用して、4433番ポートで httpsサーバとして動作しますので、ブラウザから https://test.example.com:4433 のようにアクセス出来ます。
これで、作成した証明書を使用した場合、ブラウザで見た場合に問題無いかチェックできます。
問題無い場合は、次のような表示で始まる内容がすぐさまブラウザに表示されます。
s_server -cert server.crt -key server.key -www Secure Renegotiation IS supported Ciphers supported in s_server binary :
実際に Apache等のWEBサーバへ設定した時と同様、証明書に何らかの問題があれば、次の内容がブラウザに表示されます。
サーバ証明書作成時に指定した CommonName とサーバ名が異なる場合は、証明書のエラー詳細で次のような表示がされます。
もし運用状態のサーバに設定していたら大変ですが、事前にこのように確認できます。
このように、実際にサーバに証明書を設定せずとも、事前に証明書のチェックが可能です。
参考
DSAS開発者の部屋:システム管理者の心得? ~ OpenSSLコマンドで証明書をチェック
OpenSSL Command-Line HOWTO – nona.to fswiki
コメント