忘れるからメモという名のコピペ
作成手順
-
openssl コマンドを使って SSL 自己証明書を作成する。
-
秘密鍵(server.key)の作成
openssl genrsa -aes256 1024 > server.key
-
公開鍵(server.csr)の作成
openssl req -new -sha256 -key server.key > server.csr
-
デジタル証明書(server.crt)の作成
openssl x509 -in server.csr -sha256 -days 365 -req -signkey server.key > server.crt
-
Apache の ssl.conf を編集する。
-
-
秘密鍵(server.key)の作成
次のコマンドで秘密鍵(server.key)を作成する。
openssl genrsa -aes256 1024 > server.key
パスフレーズの入力を求められるので、任意のパスフレーズを入力する。
-
Apache 起動時にパスフレーズの入力を省略する
上記の方法で作成した秘密鍵(server.key)は、作成時に入力たパスフレーズで暗号化された状態になっているので、Apache を起動する時に復号化するためのパスフレーズの入力を求められる。
-
秘密鍵 (server.key) ファイルをあらかじめ復号化しておく方法
-
Apache起動時のパスフレーズ入力を自動化する方法
-
SSLPassPhraseDialog ディレクティブで、パスフレーズを標準出力するような外部コマンドを指定し、パスフレーズを自動入力するように設定する。
-
外部コマンドは何でもよいので、簡単なシェルスクリプトを用意する。例えば下記のような内容のファイル /etc/httpd/conf.d/pass-phrase.sh を作り、パーミッションを 500 にする。
-
-
#!/bin/sh
echo "パスフレーズ"
- SSLPassPhraseDialog ディレクティブは次のように指定する。
# SSLPassPhraseDialog builtin
SSLPassPhraseDialog exec:/etc/httpd/conf.d/pass-phrase.sh
-
公開鍵(server.csr)の作成
WebサーバのCSRファイル(server.csr)を作成する。
そして、ついでにSHA256に対応しておく。
openssl req -new -sha256 -key server.key > server.csr
Enter pass phrase for server.key:パスフレーズ
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Osaka
Locality Name (eg, city) []:Osaka-shi,Chuo-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc.
Organizational Unit Name (eg, section) []:Example Section
Common Name (eg, YOUR name) []:example.com
Email Address []:空白
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:空白
An optional company name []:空白
-
デジタル証明書(server.crt)の作成
SSL 通信には CA(Certification Authority, 認証局)が発行した証明書が必要だが、自分自身でデジタル証明書(server.crt)作成する。(このデジタル証明書の発行をおこなっている第三者機関が VeriSign などになるが、自分自身でデジタル証明書をつくることもできる。)
openssl x509 -in server.csr -sha256 -days 365 -req -signkey server.key > server.crt
確認方法
作成した csr (公開鍵)ファイルから鍵情報を見る
$ openssl x509 -noout -text -in (crtファイル)
- Not Before: 証明書が発行された日時
- Not After: 証明書の有効期限
参考: http://www.maruko2.com/mw/Apache/SSL自己証明書の作成とmod_sslの設定
参考: http://timudondon.ti-da.net/e2422928.html