HTTPS サーバ構築の手順
1. SSL対応のApacheをインストール
2. mod_sslの有効化
3. 鍵ペアの作成とデジタル証明書の作成
4. Apache設定ファイルの設定
5. SSL設定ファイルの設定
6. SSLの接続確認
* 以下の 『apache24』は適宜適切な名称に置き換えること
1. SSL対応のApacheをインストール
適当な、Apache + OpenSSL でインストール。起動はしない。(2013/02/14 現在 httpd-2.4.3-win32-ssl_0.9.8.zip)
2. mod_sslの有効化
httpd.conf を開き、下記行のコメント外す
#LoadModule ssl_module modules/mod_ssl.so => LoadModule ssl_module modules/mod_ssl.so
3. 鍵ペアの作成とデジタル証明書の作成
(1) server.key(秘密鍵)
(2) server.csr(CSRファイル: 公開鍵+証明書申請情報)
(3) server.crt(デジタル証明書)
作成ファイルは、すべて %apache_home%\conf 配下に生成される。適宜置き換えのこと
以上3つのファイルを生成する((4)は別)。以下、%apache_home% は適宜置き換えること。
(1) 『秘密鍵 server.key』の生成
httpdサーバの通信暗号化に使用される秘密鍵を生成。server.key は、httpd 以外がアクセスできないフォルダに格納すべき(今回は、%apache_home%conf\ 配下)。
%apache_home%\bin\openssl.exe genrsa -des3 2048 > %apache_home%\conf\server.key
パスフレーズを聞かれるので、Verify を含め2回入力
* -des3 ... DES3(Triple DES)方式でファイルを暗号化
* 2048 ... 2,048ビットの鍵を生成 (1,024bit は、RSAも2012/09/28が非推奨にしている)
(2) 『CSRファイル: 公開鍵+証明書申請情報 server.csr』の生成
(1)で生成した、『秘密鍵』と対応した、『公開鍵』と『証明書申請情報』を生成
%apache_home%\bin\openssl.exe req -new -config %apache_home%\conf\openssl.cnf -key %apache_home%\conf\server.key > %apache_home%\conf\server.csr
(1)のパスフレーズを入力。証明書申請情報は適切に。Common Name は ホスト名をきちんと入力する(wwwは不要)
(3) 『デジタル証明書 server.crt』を生成
(2)で生成した、『証明書申請情報』に対応した、『デジタル証明書』を生成
本来は、CAが発行した正式な『デジタル証明書』が必要だが、費用、手間を考慮し自分で生成する。
『server.key』『server.csr』は、それぞれ(1)(2)で生成されたファイルを指定する。
%apache_home%\bin\openssl x509 -in server.csr -days 365 -req -signkey %apache_home%\conf\server.key > %apache_home%\conf\server.crt
(1)のパスフレーズを入力。
* x509 ... 証明書の形式。x509形式は、Base64で視認可能。
* -days ... 証明書の有効期限の日数。この場合1年となる。
セキュリティ上あまり良くないが、サーバ再起動時等の Apache 起動時の『秘密鍵』パスフレーズ入力を抑止する。
Ⅰ. server.key をバックアップ
copy %apache_home%\conf\server.key %apache_home%\conf\server.key.bak
Ⅱ. server.key のパスフレーズを解除
%apache_home%\bin\openssl rsa -in %apache_home%\conf\server.key.bak > %apache_home%\conf\server.key
(1)のパスフレーズを入力して解除
4. Apache設定ファイルの設定
%apache_home%conf\httpd.conf を修正
以下の行を追加。またはコメントアウト
Include conf/extra/httpd-ssl.conf
5. SSL設定ファイルの設定
%apache_home%conf\extra\httpd-ssl.conf
以下の行を追加。またはコメントアウト。
SSLCertificateFile "C:/Apache24/conf/server.crt"
SSLCertificateKeyFile "C:/Apache24/conf/server.key"
*
SSLCertificateFileは、3-(3)で生成した、『デジタル証明書』ファイル
SSLCertificateKeyFileは、3-(1)、3-(4)で生成した『秘密鍵』ファイルを指定する。
ファイルの位置(%apache_home%など)を変えた場合には、この記載も変えること
6. SSLの接続確認
apache を起動
* 起動できない場合、%apache_home%\logs\error.log に何も出力されない!!!!!!!
その場合、コマンドラインで、%apache_home%bin\httpd.exe を起動すると、エラーが表示される(かも知れない)ので、対応する。
https://localhost/ で接続可? => 証明書のルートが手繰れないと Warning 画面が表示される。無視してアクセス。
この Warning は、上記で作成した証明書をブラウザで取り込めば消える。手順は調べて。
7.リンク
>認証局を立ててぼろもうけしたいんですが>無理な理由を理解しよう http://qiita.com/kawaz/items/f90810b9ea823b6556a8