WebサイトにSSLサーバ証明書を導入する(CentOS6編)

■SSL導入について
CMSツールの発展などにより、個人でも簡単にコミュニケーションが可能なホームページを公開できるようになりました。
そういったサイトの運営者はSSL導入を検討する必要があります。

SSLとは、Secure Socket Layerの略でサーバ⇔クライアントPC間での個人情報やクレジットカード情報といった機密性の高い情報を安全にやり取りできます。 SSLを導入することにより、「なりすまし」「改ざん」「盗聴」などを防ぐことができます。

■SSLサーバ証明書とは?
例えば、ショッピングカートでクレジットカード情報を入力するようなページがあった場合、見た目は同じでも似たようなURLで偽装されたページである可能性もあります。
そういった偽サイトにクレジットカード情報を入力してしまうと、悪者はカード情報を盗んでしまいます。
SSLサーバ証明書は、ウェブサイトの所有者を明らかにすることで、そういった偽サイトではないこと、また、通信が暗号化されていることも証明します。
そういった証明により、Webサイトの信頼性を向上することにもつながり、個人のサイト運営者でも導入が広まりつつあります。

■SSLの導入は、SEO対策にも効果的?
以下の記事にもある通り、Googleはランキングアルゴリズム(検索順位決定のアルゴリズム)に組み込むことを発表しています。

Google、SSL/HTTPSをランキングアルゴリズムに採用することを決定

Google、SSL/HTTPSをランキングアルゴリズムに採用することを決定

但し、上記記事内にもありますが検索順位を決定する要因はかなり沢山あると言われており、現時点でSSLの導入しているかはそれほど影響力は無いようです。
しかし、アルゴリズムは常に変化しており、今後影響力が強くなる可能性もあります。(少なくとも、SSL化でマイナスになることは無いものと思われます。)
今後影響力が強くなるのが遠い将来なのか、近い将来なのかは誰もわかりませんが、SSL導入の必要性は高まっています。

■どうやって設定する?
まずはSSLサーバ証明書を購入しましょう。(サイトの構築は完了している前提とさせていただきます。)

格安SSL証明書サービス、SSLボックス

色々種類がありますが、機能的にはEV証明(ブラウザのURL表示部分が緑色のヤツ)やドメイン認証、携帯に対応しているかなどによって値段が変わります。
法人で信頼性を必要とするサイトであれば、サイバートラストやシマンテック(旧ベリサイン)のEV対応の証明書をおススメします。
個人であればラピッドSSLやジオトラストで十分でしょう。

■導入手順

以下のサイトを参考にさせて頂きました。
さくらのVPS(CentOS 5.5)に RapidSSL をインストールするまでのメモ

1.mod_sslをインストールする。

# yum install mod_ssl

2.「/etc/pki/tls/certs/」ディレクトリへ移動し、RSA秘密鍵を生成する。


# cd /etc/pki/tls/certs/
# openssl genrsa -des3 -out server.key 2048
...........................................+++
...+++
e is 65537 (0x10001)
Enter pass phrase for server.key: (←パスフレーズを入力)
Verifying - Enter pass phrase for server.key: (←パスフレーズを再入力)

3.秘密鍵からCSRを生成する。

# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key: (←パスフレーズを入力)

<中略>

-----
Country Name (2 letter code) [GB]:JP (←国名を入力)
State or Province Name (full name) [Berkshire]:Aichi (←都道府県を入力)
Locality Name (eg, city) [Newbury]:Nagoya (←市区町村を入力)
Organization Name (eg, company) [My Company Ltd]:Company Name (←会社、団体名を入力)
Organizational Unit Name (eg, section) []: (←空エンター)
Common Name (eg, your name or your server's hostname) []:www.example.com (←ドメイン名を入力)
Email Address []:webmaster@example.com (←メールアドレスを入力)
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (←空エンター)
An optional company name []: (←空エンター)

4.CSRの内容を確認する。

# cat server.csr

5.CSRの内容をサーバ証明書発行会社のサイトへ入力する。

6.メールアドレスの認証を経て、SSLサーバー証明書がメールで送られてきます。

7.メールで送られてきたSSLサーバ証明書をサーバに反映する。

# vi server.crt

8.パスフレーズを削除する。

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: (←パスフレーズを入力)
writing RSA key

9.SSL.confを編集する。

# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
DocumentRoot "/var/www/html"
ServerName www.example.com:443

10.Apacheを再起動する。

# /etc/rc.d/init.d/httpd restart

11.「中間証明書」を作成する。

# vi /etc/pki/tls/certs/rapidssl-chain.crt
-----BEGIN CERTIFICATE-----
(英数字の羅列)
-----END CERTIFICATE-----

12.ssl.confを編集する。

# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateChainFile /etc/pki/tls/certs/rapidssl-chain.crt

13.Apacheを再起動する。

# /etc/rc.d/init.d/httpd restart

以上です。

サーバ証明書を導入して、サイトの信頼性を向上させましょう!
サイトの信頼性が向上することで、申し込み率のUPやお問い合わせ件数の増加など、コンバージョン率の改善につながるかもしれません。