Apache付属のOpen SSLでも自己署名証明書(いわゆるオレオレ証明書)を使ってとりあえずのSSLを構築できますが、当然ERR_CERT_AUTHORITY_INVALIDが出ます。
そこで無料でSSL証明書を発行してもらえるLet’s Encryptで取得することにしました。
発行ツール、Win-acmeの取得
win-acme.v2.1.8.847.x64.pluggable.zipをダウンロードしました。
https://github.com/win-acme/win-acme/releases
証明書の発行
管理者権限コマンドプロンプトからacme.exeを実行して、質問に答えていきます。
スクリーンショットは上書き処理のため若干挙動が違いまが、初回ではこの他、メールアドレスを入力して、Which installation method should run?はDo not run any (extra) installation stepsを選択して、規約に同意します。
Apacheの設定
httpd-ahssl.confかhttpd-ssl.confのhddpd.confでincludeしているSSLの設定ファイルを開く。
ServerName localhost:443
SSLCertificateFile “${SRVROOT}/conf/ssl/server.crt”
SSLCertificateKeyFile “${SRVROOT}/conf/ssl/server.key”
を
ServerName pilotblog.tk:443
SSLCertificateFile “${SRVROOT}/conf/ssl/pilotblog.tk-crt.pem“
SSLCertificateKeyFile “${SRVROOT}/conf/ssl/pilotblog.tk-key.pem”
に変更して、その直下に
SSLCertificateChainFile “${SRVROOT}/conf/ssl/pilotblog.tk-chain.pem”
を追加します。
Apacheを再起動して完了。珍しく一発で上手くいった(わかる人にはわかるこの感覚)。
証明書ファイルの更新
Let’s Encryptで取得した証明書は90日毎の更新が必要ですが、タスクスケジューラに自動的に登録されます。
タスクは毎日動きますが、更新間隔はsettings.jsonで定義されたデフォルト55日です。
https://github.com/win-acme/win-acme/blob/master/docs/manual/automatic-renewal.md