プログラミング

[Apache2.4] Let’s Encryptをhttpsの環境で自動更新できるようにする

プログラミング
この記事は約2分で読めます。
スポンサーリンク

Let's Encryptを利用している場合、Apacheの設定でhttpsだけ接続可能な状態にしていると証明書の更新時にエラーになるので毎回設定ファイルを編集して80番ポート(http)で接続できるようにしていたんですが、443番ポート(https)のみ開放している状態でも証明書の自動更新ができる方法を見つけたのでメモしておきます。

よくある設定だと80番ポートで接続しようとしてきたら443番ポートにリダイレクトするように設定している場合に、Let' Encryptの自動更新がうまく動いてくれなかったので、その対策です。

スポンサーリンク

設定内容

下記の設定をApacheの設定ファイルに追加するだけでOKです!

    RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/*

設定部分全体だとこんな感じです。

<VirtualHost *:80>
  ServerName domain.name
  <IfModule mod_rewrite.c>
    RewriteEngine On
    LogLevel alert rewrite:trace3
    RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/*
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
  </IfModule>
</VirtualHost>

最後に

Apacheの設定ファイルに一文追加するだけで、443番ポートのみ通信可能にしている場合でも、Let's Encryptの自動更新ができるようになりました。Apacheの設定などはきちんと設定していると運用時の手間を省くことができるので、是非この設定を有効活用してもらえればと思います。

本当は、Let's Encrypt側がhttps環境であっても問題なく証明書の更新を行ってくれるのがベストなんですけどね・・・

スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました