2017年8月16日SSL自己証明書の適用とハマったこといわゆる「オレオレ証明書」。久しぶりにSSL設定を行ったため、手順とハマった事項のメモ。今回はApache2.2.29のネームベースVirtualHost設定されたサイトに対して、自己証明書の適用を行った。大枠として下記のような手順になる。作業場所は任意のフォルダにて行う。server.key:パスフレーズは任意の文字列を使用。コマンドを実行するとserver.keyファイルが生成される。[]:以下は空白を入力コマンドを実行するとserver.csrファイルが生成される。(server.crt)ここは本来はベリサインなどのCAが行うが、今回は自分で設定。証明書の期限は1年にしている。server.key:コマンドを実行し秘密鍵のパスフレーズを入力すると、証明書(server.crt)が作成される。設定ファイルは/etc/httpd/conf.d以下のファイルに対して行う。今回は下記のような構成でファイルを作成。上記のような構成にした理由は、そもそもhttpでアクセスするためのバーチャルホスト設定が、サイト毎の設定ファイルで定義されていたから。(ssl.confにひとまとめにしてもよい。)個人的には上記の方が作業しやすいかと思っている。今回は使用しなかったが、SNIでのSSL証明書を使用する場合はサイト毎に鍵ファイルが異なるため、どのサイトがhttps対応なのか把握するのも容易かと思ったというのもある。(結局SNIの証明書は使用していないが。*:443ssl_example.jp.confの編集ファイルを新規作成。中間証明書ファイル(今回は使用していない。all</Directory></VirtualHost>apacheを再起動すると証明書が有効になる。Apache起動時のパスフレーズ入力省略Apacheを起動しようとすると、暗号化された秘密鍵(server.key)を復号化するためにパスフレーズの入力を求められる。下記の方法で入力を省略することが出来る。/usr/sbin/suexec)下記のエラーが出てapacheが起動しなくなった。/usr/sbin/suexec)原因はssl.confとssl_example.jp.confに記載している証明書のファイルパスが異なっていたから。今回はSNI対応している証明書ではないため、両confファイル内のパス指定を合わせると正常にapacheが起動した。余談だが、今回のサーバは1つのグローバルIPを持つサーバであったため、SNI対応の証明書以外でネームベースVirtualHostにSSLを適用するには諸々の設定が必要。設定を行いたい場合には「サイト毎にIPアドレスを変える」か「サイト毎にhttpsアクセスポートを変える」必要がある。((null):0)下記のエラーが出てapacheが起動しなくなった。onを記載していなかった。apache2.2.12からSNIに対応したことで、ネームベースVirtualHostを使用する時の設定ファイルの記述が厳密になったらしい。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。