我们从 nginx 切换到openresty这样我们就可以使用lua-resty-自动-ssl插件可以为用户拥有的域名动态生成 SSL 证书,并将其插入我们的系统。
我们的主要网站仍在使用由certbot但这似乎取决于安装 nginx(您运行certbot --nginx
以获取证书),这会导致我们的 openresty 服务器出现问题,因此我们希望完全摆脱无效的 nginx 安装。
我们的主要服务器块如下所示:
server {
server_name example.org;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate_by_lua_block {
auto_ssl:ssl_certificate()
}
# Managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem;
}
为了不再依赖 certbot 证书,我尝试删除最后两行,希望它能ssl_certificate_by_lua_block
起到作用,就像对其他域名所做的那样。
然而,这会导致openresty -t
失败:
nginx: [emerg] no ssl configured for the server
nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test failed
我尝试使用自签名证书:
ssl_certificate /etc/ssl/resty-auto-ssl-fallback.crt;
ssl_certificate_key /etc/ssl/resty-auto-ssl-fallback.key;
但它导致服务器使用自签名证书而不是由 lua-resty-auto-ssl 生成的有效、真实的证书。
那我该怎么办呢?