我在 Debian 8 上使用 ngnix 运行 owncloud-server。我使用来自letsencrypt的域的ssl-certificate。
现在我想使用自动更新脚本,定期运行并更新我的证书。这适用于所有域,除了 owncloud。
实际上,在 nginx-owncloud-config 中有一个 location 块,可以防止letsencrypt进入子文件夹domain.org/.well-known/acme-challenge:
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
上帝啊,我不是正则表达式方面的专家,也不知道如何解决这个问题(以及这个表达式的实际含义)。
在该块下方,我包含了一个用于 Letecrypt 更新的位置块:
# 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;
}
...不知道,如果这会影响表达。
我唯一的方法是注释掉“全部拒绝”。它有效。实际上我想,扩展更新脚本以停止服务器,更改owncloud-conf,再次重新启动服务器,获取新证书,再次停止服务器,将owncloud-conf更改回来并重新启动服务器......
但也许它更简单。我可能会学到更多关于正则表达式的东西......
有人给我小费吗?