兵どもが、夢のあとさき

JavaScript 系の言語に興味を惹かれ、まったりと更新しております

Apache のインストール(HTTPS版)

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(デジタル証明書)

(4) Apache起動時のパスフレーズ入力抑止

 

作成ファイルは、すべて %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回入力

 

* genrsa ... RSA形式の秘密鍵の生成

* -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年となる。

 

(4) Apache起動時のパスフレーズ入力抑止

 

セキュリティ上あまり良くないが、サーバ再起動時等の 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