foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

Apache SSL 環境を構築する

オレオレ証明書で構わない場合

特に環境設定の必要はない。
ブラウザから https: 〜で接続すればいい。
但し、なりすましの可能性があるためブラウザには警告メッセージが表示される。

認証局から証明書を発行してもらう場合

ケータイサイトとして運用するかどうか注意すること。
ケータイ本体にルート証明書が入っていないために、ケータイからは使えない場合がある。
2009/06/25 より以下が利用できるようになった。
http://www.asial.co.jp/ssl-mobile/index.php

秘密鍵と認証証明リクエストの作成

以下2つを作成する。

  • SSL 環境を構築するために必要な秘密鍵
  • 認証書発行業者へ提出するために必要な認証証明リクエス

秘密鍵の作成は以下。

su -
cd /usr/bin
./openssl md5 * > rand.dat
./openssl genrsa -rand rand.dat -des3 1024 > 2008key.pem

途中で秘密鍵パスフレーズを入力する。
パスフレーズは絶対に忘れてはならない。
パスフレーズは以下で必要になる。

  • 認証証明リクエストを作成する際
  • Apache をコンソールから再起動する際

認証証明リクエスト作成は以下。

./openssl req -new -key 2008key.pem -out 2008csr.pem

入力例は以下。

  • Country Name (2 letter code) [AU]: JP
  • State or Province Name (full name) [Some-State]: Tokyo
  • Locality Name (eg, city) []: Shinjuku
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]: 会社名ローマ字
  • Organizational Unit Name (eg, section) []: そのまま Enter
  • Common Name (eg, YOUR name) []: ドメイン

残りの項目は全て Enter でいい。

認証証明リクエストの提出

証明書発行業者へ、認証証明リクエストを提出する。
業者との手続きの中で「CSR を送ってください」と言われたら、
上記で作成した認証証明リクエストを提出すればいい。

バックアップ

上記で作成した、秘密鍵と認証証明リクエストはバックアップをとること。
メールで誰かに送るなどもってのほか。

証明書の到着

証明書発行業者へ認証証明リクエストを提出してから数日で、
業者から証明書が送られてくる。
この証明書も大切に保管しておくこと。

秘密鍵と証明書の設置

su -
cp 2008cert.pem /etc/pki/tls/certs/
cp 2008key.pem /etc/pki/tls/private/

ちなみに秘密鍵と証明書の設置場所は、実際にはどこでもいい。
apache の設定ファイルで、設置場所のフルパスを記述するので。
ただ、他と同じやり方に従っておいた方が混乱が少ないので上記のようにしている。

Apache の設定

Apache の設定ファイルを開く。

su -
vi /etc/httpd/conf.d/ssl.conf

下記のように変更する。

# SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/2008cert.pem

 # SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/private/2008key.pem

Apache の再起動

設定変更後は再起動時にパスフレーズの入力を毎回求められる。
※マシン起動時はパスフレーズ無しで起動している模様。

# su -
# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server 61.200.29.79.vpsstock.jp:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.
                                                           [  OK  ]

ブラウザから確認

ブラウザから https: で接続し、SSL が確率できているか確認する。