Apache + OpenSSL の設定をしたときのメモです。以下のサイトを参考にしました。
Apache(2.0)日本語マニュアル – The Japanese manual of Apache HTTP Server 2.0

秘密鍵、CSR 作成

秘密鍵(プライベートキー)を作成します。

パスフレーズのある秘密鍵を作成する。

$ openssl genrsa -des3 -out server.key 1024

パスフレーズのない秘密鍵を作成する。

$ openssl genrsa -out server.key 1024

パスフレーズを付けた場合は絶対にパスフレーズを忘れないこと。Apache を起動する際にパスフレーズを聞かれます。

CSR を作成する。

$ openssl req -new -key server.key -out server.csr

作成した CSR は下記コマンドで確認できる。

$ openssl req -noout -text -in server.csr

証明書を発行してもらう

Verisign や geoTrust のようなところで証明書を発行してもらう。
発行してもらった証明書は下記コマンドで確認できる。

$ openssl x509 -noout -text -in server.crt

httpd.conf の変更

httpd.conf に証明書と秘密鍵の場所を指定する

SSLCertificateFile    /path/to/this/server.crt
SSLCertificateKeyFile /path/to/this/server.key

Apache の再起動を忘れずに!

秘密鍵と証明書がマッチしていることを確認する方法

それぞれの内容を表示して確認

$ openssl x509 -noout -text -in server.crt
$ openssl rsa -noout -text -in server.key

ただこれだと面倒くさい

md5 の値を比較して確認

$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5

上記コマンドで出力された値がそれぞれ等しければ秘密鍵と証明書がマッチしています。

秘密鍵のパスフレーズを変更する方法

秘密鍵のパスフレーズを変更する

$ openssl rsa -des3 -in server.key -out server.key.new
$ mv server.key.new server.key

最初に現在のパスフレーズを聞かるので入力する。次に新しいパスフレーズを聞かれるので入力する。当然ですが変更前のパスフレーズを忘れた場合は変更できません。

関連する投稿