apache/mod_md
ACMEプロトコルを用いて,X.509証明書のドメイン検証,管理を自動化できる.
設定
extra/acme.conf
# MD common settings MDBaseServer on MDCertificateProtocol ACME MDCAChallenges http-01 # http認証.同一ドメインに複数サーバの場合用にDNS認証もある. MDDriveMode auto # 自動更新.他にmanual(更新はしない),always(無条件の自動更新)がある. MDPrivateKeys RSA 2048 # サーバ鍵の鍵種別,鍵長 MDRenewWindow 3d # 更新時期.ここでは3d(=3日前).デフォルトは30%. MDStoreDir md # 証明書保存パス.${ServerRoot}からの相対パス MDCertificateAuthority https://acme-v02.api.letsencrypt.org/directory MDCertificateAgreement https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf <Location "/md-status"> # 証明書管理の状況を確認するパス SetHandler md-status Require ip 127.0.0.1 </Location> # [slackbear.net] settings # 要求するドメインの数だけ列挙できる MDomain slackbear.net MDCertificateAgreement accepted
初期構築
設定後の初回起動時は各設定チェックが実施され,ダミー証明書の作成までとなる.
その後の再起動で正規証明書が発行される.
証明書初回発行
# /etc/rc.d/rc.httpd restart # ls /etc/httpd/md/domains/* /etc/httpd/md/domains/slackbear.net: job.json md.json fallback-cert.pem fallback-privkey.pem # /etc/rc.d/rc.httpd restart /etc/httpd/md/domains/slackbear.net: job.json md.json privkey.pem pubcert.pem
証明書導入
extra/httpd-ssl.conf で発行された証明書を読み込む
<VirtualHost _default_:443> DocumentRoot "/var/www/html" ServerName slackbear.net:443 ServerAdmin webmaster@slackbear.net SSLEngine on SSLCertificateFile md/domains/slackbear.net/pubcert.pem ←追加 SSLCertificateKeyFile md/domains/slackbear.net/privkey.pem ←追加 </VirtualHost>
Apacheを再起動
# /etc/rc.d/rc.httpd restart
---
update at 2021/12/06 18:14:51
※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。