Jan*_*hou 24 nginx virtualhost lets-encrypt
我有一个 Nginx 服务器,并禁用了隐藏文件 nginx_vhost.conf
## Disable .htaccess and other hidden files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
Run Code Online (Sandbox Code Playgroud)
但是 LetsEncrypt 需要访问该 .well-known
目录。
如何允许.well-known
目录并拒绝其他隐藏文件?
the*_*arv 30
其他解决方案对我没有帮助。
我的解决方案是包括负正则表达式的.well-known
。您的代码块应如下所示:
## Disable .htaccess and other hidden files
location ~ /\.(?!well-known).* {
deny all;
access_log off;
log_not_found off;
}
Run Code Online (Sandbox Code Playgroud)
它将阻止除以开头的文件之外的每个点文件 .well-known
PS:我也会添加return 404;
到块中。
Wei*_*dei 24
Nginx 按照它们在配置文件中出现的顺序使用正则表达式应用位置。
因此,在您当前位置之前添加这样的条目会对您有所帮助。
location ~ /\.well-known {
allow all;
}
Run Code Online (Sandbox Code Playgroud)
我已经在我的网站上提供了关于如何在 NGINX 中使用 Let's Encrypt的完整分步教程。
关键部分是:
您的 https 块中根本不需要侦听器,这一切都在 https 上完成。这只是为了证明您控制了域,它不提供任何私人或秘密的服务。
# Answer let's encrypt requests, but forward everything else to https
server {
listen 80;
server_name example.com www.example.com
access_log /var/log/nginx/access.log main;
# Let's Encrypt certificates with Acmetool
location /.well-known/acme-challenge/ {
alias /var/www/.well-known/acme-challenge/;
}
location / {
return 301 https://www.example.com$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
上面链接的完整分步指南。
归档时间: |
|
查看次数: |
41105 次 |
最近记录: |