Apache-Httpd

所有子域都不能請求 Acme-Challenge?

  • October 18, 2017

我有 Apache 2.4 和以下站點配置來應對 acme 挑戰:

<IfModule mod_alias.c>
   Alias /.well-known/acme-challenge /var/www/letsencrypt/challenges/

   <Directory "/var/www/letsencrypt/challenges/">
       Options -Indexes
   </Directory>
</IfModule>

<IfModule mod_rewrite.c>
   #Redirect before other rewrite rules
   RewriteCond %{REQUEST_URI} /\.well\-known/acme\-challenge/
   RewriteRule (.*) /.well-known/acme-challenge/$1 [L,QSA]
</IfModule>

該文件已連結,sites-enabled因此000-acme-challenge.conf它將優先於所有其他文件。它似乎只適用於 PHP 作為 FPM 執行的子/域,而不適用於 GitWeb 作為 CGI 執行的地方。

奇怪,例如我的 GitWeb(可公開訪問)被連結為010-git.conf應該在 000 之後載入它(對嗎?)。

另外,對於某些站點,我收到了速率限制錯誤 429。也許我得在那裡等一段時間。;-)

所有子/域都作為VirtualHostbtw. 執行,包括 GitWeb。

我有從埠 80 到 443 的永久重定向(使用 LetsEncrypt 證書),當周圍有 HTTPS 版本時,這通常是個好主意。這些重定嚮導致證書不被驗證(當然)。

這個stackoverflow答案(由Cherry)有點幫助我能夠同時重定向並想出了這個:

<IfModule mod_alias.c>
   <VirtualHost f.haeder.net:80>
       ServerName f.haeder.net
       ServerAlias f.haeder.net
       RedirectMatch permanent ^(?!/.well-known/acme-challenge/).* https://f.haeder.net/
   </VirtualHost>
</IfModule>

這是我在我的 Friendica 節點上使用的,你可以自己測試,它執行良好。只是為了分享這個小配置。:-)

引用自:https://unix.stackexchange.com/questions/397291