SSLの導入

SSL

いずれの場合も必要なのは、証明書、秘密鍵、中間証明書の3点。CSRはいらない。

SSLの更新手順

以下の3ファイルの中身を書き換えた後でhttpdを再起動するだけで、基本的にOK
ただし、新規作成時と同様にどれか1つだけ古かったり記述に誤りがあると再起動に失敗しサービスが停止するので
書き換え作業は古いファイルを一旦リネームして保存してからやるのがよいだろう

/etc/pki/tls/certs/
ここにある証明書と中間証明書

/etc/pki/tls/private/
ここにある秘密鍵

SSLの導入手順

追加でIPアドレスを割り当てるなど、サーバーに複数のIPアドレスを用意

レンタルサーバーなら、そこに問い合わせる

DNSの設定で、Aレコードをhttpsで使用する専用のIPアドレスを指定

お名前.comの管理画面とかで

追加したIPアドレスをNICに割り当てる

/etc/sysconfig/network-scripts/
の下にある(多くの場合)ifcfg-eth0という名前のファイルがあるので、
ifcfg-eth0:0、ifcfg-eth0:1みたいに増やして行って中身をそれに合わせて修正する

ちなみに、ただコピーしただけだとネットワークの再起動に失敗してNIC自体が使えなくなるので、
ハウジングサーバーの場合はデータセンターまで行ってローカルから設定変更しなければならず
その間インターネットからの接続はもちろん全て不可能

レンタルサーバーの場合は、有料で設定変更依頼をかけて管理会社にやってもらう必要が出てくるので要注意
何なら、最初からこの設定だけは向こうにやってもらう方が安全かもしれない

httpd.confの修正

/etc/httpd/conf.d/ssl.conf
の中のデフォルトSSL設定をコメントアウトしないと
こっちが適用されて、目的の証明書を見に行ってくれない場合があるようだ

実際に修正するのは、そこからインクルードするconfファイルを/etc/httpd/conf.d/下に置く

設定例
<VirtualHost xxx.xxx.xxx.xxx:443>
   ServerName example.com:443
   DocumentRoot "/home/example.com/open"
   CustomLog /var/log/httpd/example_com_ssl_log combined_mb env=!except-request
   ErrorLog /var/log/httpd/example_com_ssl_error_log

   SSLEngine on
   SSLCertificateFile /etc/pki/tls/certs/example.cert.pem
   SSLCertificateKeyFile /etc/pki/tls/private/example.key.pem
   SSLCertificateChainFile /etc/pki/tls/certs/example.inca.pem
</VirtualHost>

証明書、その他の記述

証明書(example.cert.pem)
-----BEGIN CERTIFICATE-----で始まる

秘密鍵(example.key.pem)
-----BEGIN RSA PRIVATE KEY-----で始まる

中間証明書(example.inca.pem)
-----BEGIN CERTIFICATE-----で始まり、複数ブロックになることが多い

の3ファイルを↑のconfに記述したそれぞれの場所に設置

ちなみに、更新の場合は、この3つのファイルの中身を新しいものに書き換えるだけで完了

httpdをリスタート

設定に誤りがあると再起動に失敗する
すぐに原因が分からない場合は、SSLCertificate~ 辺りをコメントアウトしてSSLを無効にすれば
とりあえず起動するはず

なお、この間違いは apachectl configtest ではエラーにならない
再起動前に確認する方法は現在までに発見されていない
最終更新:2013年02月22日 16:22