我在Debian 8上运行一个拥有ngnix的owncloud-server。 我使用来自letsencrypt的该域的ssl证书。Letsencrypt更新+ Nginx + owncloud config =由于正则表达式而失败
现在我想使用autorenewal脚本,定期运行并更新我的证书。这适用于除自有云之外的所有域。
实际上存在nginx的-owncloud-配置一个位置块,其防止从letsencrypt进入该子文件夹domain.org/.well-known/acme-challenge:
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
通过神我不是正则表达式的专家,也不知道如何解决这个问题(以及这个表达式实际意味着什么)。
下面是块i包括为letsecrypt更新位置块:
# Letsencrypt auto-renewal
location '/.well-known/acme-challenge' {
default_type text/plain;
root /var/www/;
try_files $uri /$1;
}
我觉得我想是这样的:
location ~ ^/(?:\.(?!well-known/acme-challenge)|autotest|occ|issue|indie|db_|console) {
deny all;
}
...不知道,这是否会影响到表达。
对我来说,唯一的办法就是评论“拒绝所有人”。它的工作原理。其实我想到的是,扩展更新脚本来停止服务器,更改自己的云端conf,重新启动服务器,获取新证书,再次停止服务器,更改自己的云端服务器并重新启动服务器...
但也许它更简单。我可能会学到更多关于正则表达式的东西...
有没有人对我有帮助?
“location ^〜/.well-known/acme-challenge”解决了它。另外我没有尝试其他解决方案。非常感谢您的帮助。该文档帮助我更好地理解正则表达式,以及nginx如何优先考虑位置块。 – Nagarjuna