kan*_*nix 4 apache-2.4 lets-encrypt
我使用以下配置在所有虚拟主机上启用 letencrypt 支持:
ProxyPass /.well-known/acme-challenge !
Alias /.well-known/acme-challenge/ /var/www/letsencrypt/.well-known/acme-challenge/
<Directory "/var/www/letsencrypt/.well-known/acme-challenge/">
Options None
AllowOverride None
ForceType text/plain
RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)"
</Directory>
Run Code Online (Sandbox Code Playgroud)
这适用于除 gitlab 之外的所有主机(主要是 php 或静态站点)
我正在使用这个配置:https : //github.com/gitlabhq/gitlab-recipes/blob/master/web-server/apache/gitlab-ssl-apache24.conf
我的猜测是这个配置部分有问题:
<Location />
# New authorization commands for apache 2.4 and up
# http://httpd.apache.org/docs/2.4/upgrading.html#access
Require all granted
#Allow forwarding to gitlab-workhorse
ProxyPassReverse http://127.0.0.1:8181
ProxyPassReverse http://YOUR_SERVER_FQDN/
</Location>
Run Code Online (Sandbox Code Playgroud)
但解决这个问题的最佳方法是什么?
我认为这里有两个问题:
DocumentRoot是外面的东西/var/www/letsencryptgitlab-workhorse 正在重写请求别名的东西应该解决第一个问题,但是这个添加应该允许 .well-known 请求不被 GitLab 重写。根据评论:
#Forward all requests to gitlab-workhorse except existing files like error documents
Run Code Online (Sandbox Code Playgroud)
Gitlab 已经写了排除规则,所以我们可以添加进去。
在之前添加以下行 RewriteRule
RewriteCond %{REQUEST_URI} !^.*/\.well-known/.*$ [NC]
Run Code Online (Sandbox Code Playgroud)
这增加了不重写包含 .well-known 请求的条件。重启Apache并测试。
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |