Httpd

我在 apache httpd conf 文件中進行了重寫,這破壞了 certbot。有沒有辦法改變它,使它不會?

  • April 25, 2022

我在 Apache httpd 中設置了一個子域,它是 Tomcat 伺服器的前端,httpd 伺服器由 Let’s Encrypt 保護。

如果我在 conf 文件中啟動了以下重寫,則 certbot 失敗。

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

如果我將其註釋掉,則 certbot 可以工作。

我不完全確定,但我認為它是 100% 一致的。當然,使用挑戰記憶體,我無法在成功續訂後的整整一個月內獲得另一個有意義的測試結果。

如果我理解正確,您希望將所有非 HTTPS 請求重定向到 HTTPS。所以我猜你的重寫是在一個<VirtualHost *:80>容器中,用於非 HTTPS 站點。

現在您要添加另一個條件,以不重定向 Lets Encrypt 挑戰。我認為您可能正在使用HTTP-01 挑戰,這意味著您不想將請求重定向到http://<YOUR_DOMAIN>/.well-known/acme-challenge/<TOKEN>. 那麼下面的工作嗎?

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]

引用自:https://serverfault.com/questions/1041047