SSL証明書をサーバーに設置
それでは、前回生成し厳重に保管した秘密鍵、公開鍵、そしてStartSSLの証明書をサーバーに設置します。
- startssl.key
- startssl.crt
- ca.pem
- sub.class1.server.ca.pem
証明書の設置先ディレクトリは通常は /etc/pki/tls/certs です。SFTPを使用してアップロードします。
次にパーミッションを設定します。
cd /etc/pki/tls/certs/
chmod 400 startssl.key startssl.crt ca.pem sub.class1.server.ca.pem
chown root:root startssl.key startssl.crt ca.pem sub.class1.server.ca.pem
Apache 2.2 でSSL証明書の設定
/etc/httpd/conf.d/ssl.conf へ証明書を設定します。
SSLCertificateFile /etc/pki/tls/certs/startssl.crt SSLCertificateKeyFile /etc/pki/tls/certs/startssl.key SSLCertificateChainFile /etc/pki/tls/certs/sub.class1.server.ca.pem SSLCACertificateFile /etc/pki/tls/certs/ca.pem
シンタックスチェックをします。
httpd -t
Syntax OK となることを確認します。
RailsアプリケーションにSSLを設定
さあ、一気に RailsアプリにSSL設定をしてしまいます。
ユーザーに入力を求めるページは 不具合報告、質問、要望の受け付けページのみとなっているため、このページを強制的にSSL通信にリダイレクトさせます。
class FeedbackController < ApplicationController force_ssl ........ end
Feedbackページのコントローラに force_ssl メソッドを宣言するだけです。
とは言いつつ、ちょっとだけトラブってしまいました。その内容はまたの機会にて。
Apache 再起動
Apache を再起動します。
sudo service httpd restart
Enter pass phrase: でパスワードが要求されました。秘密鍵を生成した時に指定したパスワードを入力すると、OK: Pass Phrase Dialog successful. となって、正常に起動されました。
Feedbackページを開くと、httpsにリダイレクトされ鍵マークが表示されています。
現在、StartSSLではハッシュアルゴリズムがデフォルトでSHA-2となっているため、Chromeの鍵アイコンはしっかり緑色となっています。
環境
CentOS release 6.5 (Final)
Apache/2.2.15
Rails 4.1.2