WindowsServer2016でmod_mdを使ってLet’sEncryptでSSL証明書を設置する
TL;DR
Windows Server2016でLet’sEncryptを使うのに、mod_mdを使うと簡単にSSL証明書の認証まで出来て便利。
Environment
- さくらのVPS for Windows
- Windows Server2016
- Apache2.4.30以降
- mod_md
- Let’s Encrypt
手順
httpd.confで下記をアンコメントする。
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule watchdog_module modules/mod_watchdog.so
LoadModule md_module modules/mod_md.so
下記をhttpd.confへ追記する。MDCertificateAuthority
でv01を指定していると、ACMEv1は使えないエラーが出るので注意。v02を指定する。
MDCertificateProtocol ACME
MDCAChallenges http-01
MDDriveMode auto
MDPrivateKeys RSA 2048
MDRenewWindow 33%
MDStoreDir md
MDCertificateAuthority https://acme-v02.api.letsencrypt.org/directory
MDCertificateAgreement https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
MDomain www.example.com
Listen 443
<VirtualHost *:443>
SSLEngine on
ServerName www.example.com
DocumentRoot "${SRVROOT}/htdocs"
</VirtualHost>
下記メールアドレスを変更する。
ここがexample.comのままだとエラーになる。
ここでApacheを2回再起動する。
1回目だけだと、エラーログに次回のApache再起動でと表示が出る。
ファイアウォールで443を開放して、ブラウザでアクセスできればOK。