Let’s Encrypt 証明書の更新方法をApacheのmod_mdに変更

Apache HTTP Server Project(httpd)が提供するACMEプロトコル(Let’s Encryptが使用してるプロトコル)によるTLS証明書の取得と管理のサポートを始めたと言った内容の“ACME Support in Apache HTTP Server Project” の記事が目に止まった。

とにかくwindows版にビルドした「mod_md-VC15.zip」 をApache Lounge (Author:Steffen) からダウンロードして展開、 binフォルダー の中身は apache/bin に、modulesフォルダー の中身は apache/modules にコピー。 curl.exeとパッチ済みのmod_ssl.so(apache用) だけが上書となる。作業開始前にReadme.txtを読んだところ設定は簡単で、前もって準備をすることもなくconfファイルを修正・追記してサーバーの再起動で終了する程度、なのでこれは試すしかない。

1)[httpd.conf]
LoadModuleのコメントアウトと追加

・LoadModule watchdog_module modules/mod_watchdog.so ➡ (#)外す
・LoadModule md_module modules/mod_md.so ➡ 追加

2)[httpd-ssl.conf]

1.<VirtualHost *:443>~</VirtualHost>の上部に追記
・MDCertificateAgreement https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
・ManagedDomain osblog.osshinet.com
・MDRenewWindow 80d
*詳しくはhttps://github.com/icing/mod_md/wiki と https://httpd.apache.org/docs/trunk/mod/mod_md.html を参照

2.「SSLCertificateFile(crt)」、「SSLCertificateKeyFile(key)」と「SSLCertificateChainFile」ディレクティブは必要なくなるので(#)を付ける。

3)Apache を再起動すると「mod_md」が「ServerRoot」に「MD」というフォルダと空のサブフォルダーを作る。
「account」「archive」「challenges」「domains」「staging」

Apacheのログを見ると、Let’s Encryptへ送信?した形跡があってconnectしたが(yet)だという返事が返って公開サイト上には、その旨の表示が現れてHPが見れなくなる。なので1~2時間ほど間をおいて2)の(#)を外したり付けたりの繰り返しを3回ほど行ったところ接続できたのか?サイトに表示が無くなりHTTPSでHPを見る事ができるようになった。

その後、Apacheのログをみると通常の再起動でのエラー的な項目が無くなったので、MDフォルダーをチェックすると、staging(マルチドメイン用?)以外に証明書等が入ったドメイン名のフォルダーが設置されていた。

md-+–
+- accounts # ACME account information, one subdir/account
+- archive # copies of older domain data
+- challenges # temporary files for answering ACME challenges
+- domains # one subdir per MD, contains keys and certificates
+- fallback-privkey.pem # key used when no valid certificate is available
+- fallback-cert.pem # certificate used as long as no other is available
+- httpd.json # properties of the server, e.g. which ports it listens on
+- md_store.json # SECRET for private key protection, store version info
+- staging # MD information during certificate process
+- tmp # temporary holding place when activating staging info
(*)はMDに「crtとkey」が含まれた時点で自動削除される。

mod_md がどの様に証明書の更新をするのか分からないけど、「MDRenewWindow 80d」が毎10日に自動で試みるようで、更新がなされるとarchiveに「ドメイン名+数字」で確認できるようだ。

コメントを残す

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

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