はじめに
ApacheでSSLを有効にする
176行目付近にある「#LoadModule ssl_module~~」 コメントアウトを削除
#LoadModule ssl_module modules/mod_ssl.so
↓
LoadModule ssl_module modules/mod_ssl.so以下を末尾に追加
<VirtualHost *:443>
DocumentRoot "c:/srv/html"
ServerName localhost
SSLEngine on
SSLCertificateFile "c:/srv/SSL/server.crt"
SSLCertificateKeyFile "c:/srv/SSL/server.key"
</VirtualHost>DocumentRoot : Webフォルダ
ServerName : https://localhost などのドメイン名
SSLCertificate~~ の2つのファイルは後に作成します
「c:/srv/html」「c:/srv/SSL~~」は「Nginx」と共有します
PHPでSSLを有効にする
931行目付近にある「;extension=openssl」のコメントアウトを削除
;extension=openssl
↓
extension=opensslWindowsのhostsに追加
ここからWindowsの内部編集になります。自己責任でお願いします
メモ帳を右クリックし「管理者として実行」
「hosts」を開く
c:/Windows/System32/drivers/etc/hosts以下を末尾に追加
127.0.0.1 localhost「hosts」を保存したら一旦PCを再起動。後からでも可
OpenSSL設定ファイルを編集
「c:/srv/Apache24/conf/openssl.cnf」を「c:/srv/SSL」にコピー 「openssl-san.cnf」にリネーム
「c:/srv/SSL」がない方は空のフォルダを作成してください
c:/srv/SSL/openssl-san.cnf以下を末尾に追加
[ SAN ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = localhost「https://localhost」でアクセスする為のドメイン名
上の「hosts」と同じドメイン
サーバー証明書
証明書を作成するには「OpenSSL」をインストールし、コマンドプロンプトでの操作が必要になります
今回は「GitBash」を使って作成します 「GitBash」ならそのままopensslコマンドが使えます
Git Bashをダウンロード、インストール
https://git-scm.com にて右の真ん中にある「Download for Windows」をクリック
次のページで表示された「Click here to download」をクリック exeファイルがダウンロードされます
ダウンロードしたexeファイルをクリック。今回は細かい設定をしないので基本そのまま「Next」をクリックしつつすすめていきます
気になるところがある場合は各自で調整してください
スタートメニューなどに「Git Bash」のアイコンがあることを確認
証明書を作成
「Git Bash」を起動
cdコマンドを使って「c:/srv/SSL」まで移動
以下を入力
$ openssl req \
-newkey rsa:4096 \
-keyout server.key \
-x509 \
-nodes \
-out server.crt \
-subj "//CN=localhost" \
-reqexts SAN \
-extensions SAN \
-config openssl-san.cnf \
-days 3650\(バックスラッシュ)を入力したあと「Enter」を押すと「>」出るので続けて入力
この時点ではエラーが出ないので入力ミスに気づきにくいです(ここでミスしても後から修正可能)

\(バックスラッシュ)「Enter」で改行しています
\(バックスラッシュ)「Enter」の代わりに半角スペースでも可
$ openssl req -newkey rsa:4096 -keyout server.key -x509 -nodes -out server.crt
-subj "//CN=localhost" -reqexts SAN -extenstions SAN -config openssl-san.cnf -days 3650入力ミスによりエラーが出てもカーソルの上をクリックすると直前に入力したものが表示されるので、修正しつつ実行してください

このような画面が表示されれば成功です
作成したファイルの確認
c:/srv/SSL/server.crt
c:/srv/SSL/server.keyの2つがあることを確認

証明書を認証する
古い証明書の削除
Chromeブラウザにて右上の3点印から「設定」をクリック(アドレスバーの右側)
表示されたページの左側にある「プライバシーとセキュリティ」→「セキュリティ」→下のほうにある「証明書の管理」をクリック

「Windowsからインポートした証明書を管理する」をクリックで証明書が表示
「信頼されたルート証明機関」をクリック

「localhost」を選択し「削除」をクリック 途中警告がでることがありますがそのまま進めます
※「localhost」がない場合はこの操作は不要です
新しい証明書の認証
「c:/srv/SSL/server.crt」をクリック
表示された証明書 「証明書のインストール」をクリック

「現在のユーザ」にチェックした状態で「次へ」をクリック
「証明書をすべてのストアに設置する」にチェックし「参照」をクリック
「信頼されたルート証明機関」を選択し「次へ」をクリック
途中警告が出ますがそのまま進めます
動作確認
Windowsのhostsに追加 の所でPCを再起動していなければここでPCを再起動
Apacheを起動後、ブラウザにて「https://localhost/info.php」など「https」でアクセスしてエラーが出なければ成功です










コメント