Xampp for WinのapacheにGit BashでSubject AltName(SAN)

現在のプライベート認証局(CA)のサーバ証明書(WWW)が大手ブラウザ(Chrome等)で「Common Name (CN)」対応が廃止されたので拡張機能の「Subject Alternative Name (SAN)」が必要になっている。ただ単に拡張機能なので再度作り直しで済むかな?と思っていたら、「Firefox(iPhone)ではどんな自己署名証明書も認証されない」らしい。PCのMozillaFirefoxであれば、例外に登録すればOK!だけど、iPhoneのブラウザではNO!

サイトを巡って見つけた耳寄りな情報だけど、opensslコマンドを使える「Git Bash 」であればXamppのApacheに拡張機能付けたサーバー証明書を素早く作成できる。又、ServerNameをドメインで作成できること、当然のこと別途httpd-vhost.confとhttpd-ssl.confの設定が必要。
例)localhost ➡ www.example.com

【準備】

1)php.ini
;extension=php_openssl.dll ➡ ;コメントアウト
2)apacheのconfにあるopenssl.cnfをコピー、ファイル名をopenssl-san.cnfに変更
3)openssl-san.cnfの末尾に追記
・[ SAN ]
subjectAltName = @alt_names
・[ alt_names ]
DNS.1 = ドメイン ➡ CN
DNS.2 = <認証したいドメイン>
DNS.3 = <認証したいドメイン>
例)2~ *.xxxxxxx.xxx可 ➡ A

【apacheに設定】

[httpd-ssl.conf]
<VirtualHost *:443>
DocumentRoot “C:/xampp/htdocs/xxxxx” ➡ 指定
ServerName ドメイン
~ ~ ~ ~
</VirtualHost>
SSLEngine on
SSLCertificateFile “conf/ssl.crt/xxxxxxx.crt”
SSLCertificateKeyFile “conf/ssl.key/xxxxxx.key”
作成した.crtと.keyをconfのサブフォルダーにコピー

【サーバー証明書の作成】

[GitBash]
・ C:\xampp\apache\conf へ移動
$ cd /c/xampp/apache/conf
・ xxxxxxr.crt, xxxxxxr.key の2つのファイルを生成

$ openssl req \
-newkey rsa:4096 \
-keyout xxxxxx.key \

# For the CA policy ➡初めての作成時に?
・pass phrase
・[ req_distinguished_name ]

-x509 \
-nodes \
-out xxxxxxx.crt \
-subj “//CN=ドメイン” \
-reqexts SAN \
-extensions SAN \
-config openssl-san.cnf \
-days 3650

・-subjオプションでの書き方はGitBashのみ有効。GitBash以外の端末では「-subj “/CN=ドメイン” \」と、スラッシュをひとつ減らす。
・CRT証明書の登録は、信頼されたルート機関へ登録する。

プライベート認証局(CA)とサーバ証明書(WWW)の再構築は次の機会に挑戦する予定。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)