SSL証明書の確認のためにapacheに設定する前に、opensslの「s_server」コマンドを使うと簡単に確認できます。

コマンドの各オプションは以下の通りです。

-accept
待ち受けポート(デフォルトは 4433)

-cert filename
サーバ証明書のファイル名(デフォルトは server.pem)

-key filename
秘密鍵のファイル名(指定しない場合はサーバ証明書が用いられる)

-CAfile filename
中間証明書のファイル名

-WWW
単純な Web サーバをエミュレートする。
URL のパス部分をカレントディレクトリからの相対パスで解決して、対応するファイルを返す。

実行例

証明書の組み合わせがOKな場合は下記のようなメッセージが流れます。

こうなれば成功です。Webサーバーに鍵ペアを持って行ってもきっとちゃんと動いてくれる事でしょう。

この状態は、openssl がポート 10433 番ポートで接続待ちをしている状態です。

GUI でHTTPSの動きを見る

試しにブラウザから https://localhost:10443 に接続してみましょう。

ブラウザには何も表示されませんが、
s_server を起動したコンソールには下記のようなメッセージが流れているはず。

これは、ブラウザからの HTTPS接続を openssl s_server が受け、
SSL handshake が成功して正常に暗号化通信ができている様子です。

応答を返していないのでブラウザに何もでませんが、
コンソールにHTTPレスポンスを流してあげれば、そのままブラウザに表示されるはず。

CUIでHTTPSの動きを見る

接続確認にブラウザを使うのも面倒だという方は、
別に立ち上げたコンソールで以下のコマンドを叩いてみてください。

実際に叩いてみました。

handshake の様子が流れていますね。

openssl の s_server を使えばSSL証明書の期限チェックとかが自動化できそうですね!