これまでの手順
- [Windows]ローカル環境へのWordPressのセットアップ(Apache+PHP+MySQL)
- WordPressでパーマリンクの設定を変更すると404エラー(Apache)
- [Windows]Apacheのmod_rewriteを有効にする
- [Windows]phpMyAdminをインストール
- WordPressのプラグインWP Mail SMTPで外部メールに送信する
Windows版ApacheでWordPressがセットアップできたので、常時SSLに対応してみます。
やりたいこと
- http で受けたリクエストを全て https で暗号化して返す。
- 証明書は自己署名証明書(通称オレオレ証明書)。
- WordPress のプラグインではなく、Apacheの機能(mod_ssl)で実装する。
ファイル構成
SSL用の設定ファイルは C:\Apache24\conf\extra\ssl.conf に準備されているので、これに従って設定します。- VirtualHost _default_:443 というディレクティブが記載されています。
- 証明書:C:\Apache24\conf\server.crt
- 秘密鍵:C:\Apache24\conf\server.key
openssl.exeが C:\Apache24\bin に準備されているので、これを使って秘密鍵と証明書の生成を行います。
http.conf から ssl_module を有効にし、conf\extra\httpd-ssl.conf を読み込む設定も行います。
秘密鍵(server.key)の生成
コマンドプロンプトで以下を実行します。C:\> cd C:\Apache24\bin
C:\Apache24\bin> openssl.exe genrsa -out ..\conf\server.key 2048
CSR(server.csr)の生成
引き続きコマンドプロンプトで以下を実行します。C:\Apache24\bin> openssl.exe req -new -key ..\conf\server.key -out ..\conf\server.csr -config ..\conf\openssl.cnf
証明書に設定する以下の質問項目に答えます。
- Country Name(国コード:日本の場合は"JP")
- State or Province Name(都道府県)
- Locality Name(市区町村)
- Organization Name(組織)
- Organizational Unit Name(部門)
- Common Name(SSLを使うIPアドレスまたはサイト名)
- Email Address(メールアドレス)
- A challenge password(証明書を破棄する場合のパスワード)※オプション
- An optional company name(別の組織名)※オプション
証明書(server.crt)の生成
引き続きコマンドプロンプトで以下を実行します。C:\Apache24\bin> openssl.exe x509 -in ..\conf\server.csr -out ..\conf\server.crt -req -signkey ..\conf\server.key -days 365
これで必要な鍵がそろいました。
httpd.conf の修正
C:\Apache24\conf\httpd.conf を編集します。①mod_ssl の有効化
②httpd-ssl.conf を読み込むようにする
設定の確認(configtest)
設定の確認をするには次のようにします。C:\Apache24\bin> httpd.exe -t
次のエラーが出ました。
AH00526: Syntax error on line 92 of C:/Apache24/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
httpd.conf の追加編集をします。
③socache_shmcb_module の有効化
設定が終わったらApache を再起動します。
ブラウザでアクセス
安全な接続ではありません と表示されますが、アクセスすることまではできました。エラー内容を表示し、例外を追加します。
無事アクセスすることができました。
常時SSL対応
最後に常時SSL対応にします。全ての http アクセスを https にリダイレクトすれば OK です。
httpd.conf を次の様に修正します。
設定の確認
C:\Apache24\bin>httpd.exe -t
C:\Apache24\bin>httpd.exe -S
これで常時SSLの対応ができました。
0 件のコメント:
コメントを投稿