提供: すだちWiki
移動先: 案内検索

Webサーバー間通信内容暗号化にRapidSSLを導入(CentOS6)

メインページ > CentOS 6 で自宅サーバー構築  > Webサーバー間通信内容暗号化にRapidSSLを導入(CentOS6)


SSLを導入しないとなぁと思っていたので、自宅サーバーにRapid-SSL 年額2600円(税込み)を導入してみました。

Rapid-SSL から SSL サーバー証明書を取得する

まず、申請に必要な CSR ファイルの作成から行います。

秘密キーの生成

SSL サーバー証明書に必要な秘密鍵を生成する。

[root@host3 ~] openssl genrsa -des3 -out ./ssl-key/ssl-site1.key 2048
・
・
Enter pass phrase for ./ssl-key/ssl-site1.key: ← 任意のパスワードを応答※表示はされない
Verifying - Enter pass phrase for ./ssl-key/ssl-site1.key: ← 任意のパスワードを応答※表示はされない

Webサーバー起動時にパスワードを要求されないようにするためサーバー用秘密鍵からパスワード削除。

[root@host3 ~]# openssl rsa -in ./ssl-key/ssl-site1.key -out ./ssl-key/ssl-site1.key
Enter pass phrase for ./ssl-key/ssl-site1.key: ← サーバー用秘密鍵・証明書作成時のパスワード応答※表示はされない
writing RSA key

このようにすることで、SSL サーバー証明書に必要な秘密鍵を "./ssl-key/ssl-site1.key" として生成することができました。秘密鍵が生成できたら、それを用いて CSR ファイルを生成します。

CSRファイルを生成

秘密鍵が生成できたら、それを用いて CSR ファイルを生成します。

[root@host3 ~]# openssl req -new -key ./ssl-key/ssl-site1.key -out ./ssl-key/ssl-site1.csr
Country Name (2 letter code) 日本の場合は "JP" と 2 文字で入力します。
State or Province Name (full name) 都道府県名を入力します。例えば "Tokushima" 等になるのでしょうか。
Locality Name (eg, city) [Default City] 市区町村名を入力します。例えば "Tokushima-shi" となるのでしょうか。
Organization Name (eg, company) 組織名を入力します。個人の場合はドメインの登録者名で良いようです。
Organizational Unit Name (eg, section) 組織の部門名を入力します。不要な場合は入力しなくても良いようです。
Common Name SSL 証明書を設置する Web サイトのドメイン名を入力します。例えば "http://sudachi.jp/" であれば "sudachi.jp" となります。
Email Address 承認メールアドレスを入力します。ここで設定できるのは、ドメイン取得時に公開連絡窓口として設定したアドレスか、または "コモンネーム" に設定したドメインの "admin@" や "info@" といった、特定のメールアドレスだけとなるそうなので注意が必要です。
A challenge password 設定しません。
An optional company name 設定しません。

これで、先ほど作成した秘密鍵に対応した CSR ファイル "./ssl-key/ssl-site1.csr" の生成できました。これをもって、SSL サーバー証明書の取得申請を行う運びとなります。

SSLサーバ証明書申込

Rapid-SSL.jp の申し込みページへアクセスすると、そこには申請における注意事項が掲載されています。それらに目を通した上で、申込フォームに必要事項を入力します。必要事項は契約期間などといった簡単なものがほとんどでした。

クレジットカード払いの場合だと、すぐに "SSL 証明書発行承認依頼通知" が送られてきます。

送られてきたメールの URL をクリックして承認画面を表示して、内容事項に間違いなければ 【承認します】 ボタンをクリックします。すると、SSL サーバー証明書が記されたメールが届くので、これで SSL サーバー証明書の発行手続きは完了となります。

サーバー証明書設定

SSL サイト設定の "SSLCertificateFile" と "SSLCertificateKeyFile" と "SSLCertificateChainFile" とに、それぞれ "SSL サーバー証明書" と "秘密鍵" と "中間証明書" とを設定すれば、これで SSL サイトの運営準備が完了します。

SSLサーバー証明書

メールで送られてきた SSLサーバ証明書(X.509形式)の "-----BEGIN CERTIFICATE-----" を含むそこから "-----END CERTIFICATE-----" を含むそこまで貼り付けます。

[root@host3 ~]# vi /etc/pki/tls/certs/ssl-site1.crt
-----BEGIN CERTIFICATE-----
・
・
-----END CERTIFICATE-----

秘密鍵コピー

[root@host3 ~]# cp ./ssl-key/ssl-site1.key /etc/pki/tls/certs/ssl-site1.key

SSLサーバ中間証明書

メールで送られてきた 中間証明書(INTERMEDIATE CA) の "-----BEGIN CERTIFICATE-----" を含むそこから "-----END CERTIFICATE-----" を含むそこまで貼り付けます。

[root@host3 ~]# vi /etc/pki/tls/certs/ssl-site1-chain.crt
-----BEGIN CERTIFICATE-----
・
・
-----END CERTIFICATE-----

パーミッション変更

安全のため所有者以外が読み書きできなくする。

[root@host3 ~]# chmod 600 /etc/pki/tls/certs/ssl-site1*

WebサーバーSSL設定

SSL設定

Apache に SSL設定の設定をします>

[root@host3 ~]# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/ssl-site1.crt ← サーバー用証明書を指定

SSLCertificateKeyFile /etc/pki/tls/certs/ssl-site1.key ← サーバー用秘密鍵を指定

SSLCertificateChainFile /etc/pki/tls/certs/ssl-site1-chain.crt ← サーバー用中間証明書を指定

Apache設定反映

[root@host3 ~]# /etc/rc.d/init.d/httpd restart ← Apache再起動
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]