先日はオレオレ証明書を使ったSSL環境について説明しましたが、今回は格安認証局であるRapidSSLを使ったサーバ証明書のインストールを解説します。
サーバ証明書は認証局から直接購入するより、代理店経由のほうが安く手に入りますので、是非活用してください。
参考までに、SSLストアさんのRapidSSL(1年)はたったの1080円です。(2014.10.2現在)
それでは始めましょう。途中までは自己証明書と同じ手順です。
※20141106追記
mod_sslのインストールについて記載しておりませんでした。まず、インストールをおねがいします。
1 |
yum install mod_ssl |
1,証明書を作成するディレクトリを作成・移動し、適当なファイルを作成します。
1 2 3 4 |
mkdir /etc/pki/tls/certs/my_cert/ cd /etc/pki/tls/certs/my_cert/ # /home/hoge/*の部分は、いろんなファイルが存在する実在のディレクトリに置き換えてください。 openssl md5 /home/hoge/* > rand.txt |
(以前このサイトでは、viでファイルを作成して、適当な文字列を入力する方法を紹介していました。しかし、当サイトをコピペしてしまうと同一のファイルが出来上がることに気づいたため、ハッシュ値を用いる方法に変更しています。)
2,3DES・2048bitの秘密鍵を作成します。
1 2 3 |
openssl genrsa -rand rand.txt -des3 2048 > private.key Enter pass phrase: Verifying - Enter pass phrase: |
※ここでは秘密鍵とわかりやすいよう、private.keyとして出力しました。パスフレーズは強度の高いパスワードを利用してください。
3,CSRを作成します。
1 2 3 4 5 6 7 8 9 10 |
openssl req -new -sha256 -key private.key -out csr.pem Enter pass phrase for private.key: ## 先に設定したパスフレーズを入力 Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) [Default City]:Chuo-ku Organization Name (eg, company) [Default Company Ltd]:jdbc.tokyo Organizational Unit Name (eg, section) []:jdbc project Common Name (eg, your name or your server's hostname) []:rapidssl.jdbc.tokyo Email Address []:samplename@jdbc.tokyo chmod 400 ./* |
重要なのは、Coommon Nameです。ここにはサイトのFQDN(完全修飾ドメイン)を入力してください。
4,サーバ証明書の申請
1 |
cat csr.pem |
サーバ証明書を購入して申請を行うと、CSRの入力が求められますので、手順3で作成したCSRをコピペしたものをフォームに入力してください。
そうすると、申請時に登録したメール宛に、本当にサーバ証明書を作成しても良いか確認のメールなどが届きますので、メールの指示に従って進めてください。
RapidSSLの場合、30分〜3日程度で証明書が発行されます。
RapidSSLのポリシーに引っかかった場合、セキュリティチェック(サイトの内容の確認?)が行われるため時間がかかるそうですが、どういう基準と審査なのかは不明です。
5,中間CA証明書・クロスルートCA証明書、サーバ証明書の保存
サーバ証明書が発行されると、メールで「中間CA証明書」と「クロスルートCA証明書」と「サーバ証明書」が送られてきます。
※中間CA証明書とクロスルートCA証明書は送られてこず、WEBサイトから確認しなければならない場合もあります。
それらをコピーしてテキストファイルを作成します。
まずは、中間CA証明書とクロスルートCA証明書
1 |
vi chain.crt |
中身は下記。必ず、中間CA証明書[改行]クロスルートCA証明書の順番で保存してください。
1 2 3 4 5 6 |
-----BEGIN CERTIFICATE----- 中間証明書の内容 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- クロスルート証明書の内容 -----END CERTIFICATE----- |
続いて、サーバ証明書を保存します。
1 |
vi rapidssl.crt |
1 2 3 |
-----BEGIN CERTIFICATE----- サーバ証明書の内容 -----END CERTIFICATE----- |
6,Apacheに証明書を読みこませる(ネームベースのバーチャルホストなので環境によって利用できません)
1 2 3 4 5 6 7 8 9 |
<VirtualHost *:443> ServerName rapidssl.jdbc.tokyo DocumentRoot /var/www/html-rapidssl SSLEngine on SSLProtocol all -SSLv2 SSLCertificateFile /etc/pki/tls/certs/rapid_cert/rapidssl.crt SSLCertificateChainFile /etc/pki/tls/certs/rapid_cert/chain.crt SSLCertificateKeyFile /etc/pki/tls/certs/rapid_cert/private.key </VirtualHost> |
7,Apache起動時に秘密鍵のパスフレーズを自動で読み込むファイルにパスフレーズを追加する
1 |
vi /etc/pki/tls/certs/pass_phrase.sh |
1 2 3 4 5 6 7 8 9 10 |
#!/bin/sh case $1 in blog.ryzen.tokyo:443) echo "blog.ryzen.tokyoのパスフレーズ" ;; rapidssl.jdbc.tokyo:443) echo "rapidssl.jdbc.tokyoのパスフレーズ" ;; esac exit 0 |
こうしておけば、Apache起動時にこのスクリプトが実行され、FQDNに応じたパスフレーズを読んでくれます。便利ですねっ!
秘密鍵は特に重要なファイルなので、パーミッションは400などにしておいてください。
いざサーバが飛んだ時に備えて、バックアップを取っておいたほうが良いかもしれません。
それでは快適なSSLライフを!
[…] CentOS7 + Apache2.4でのSSL導入手順は下記ページで紹介していますので、どうぞ参考になさってください。 自己証明書で構築したい方はこちら CA発行のサーバ証明書で構築したい方はこちら […]
[…] 途中で出てきたサーバ証明書は下記のいずれかを参考にしてください。 サーバ証明書を購入する場合はこちら サーバ証明書を自己証明書にする場合はこちら […]