我需要更改服务器上的域,我一直使用 certbot 成功获取证书。但我需要将其切换到其他域。我最初没有设置它,所以我不知道它是如何完成的,也不知道如何查看当前配置。
我找到的每个答案都说我需要引用“webroot”目录,但我不确定具体是哪个。它还说,the requested nginx plugin does not appear to be installed
如果最初不是这样做的,我认为我做得不对。
Ubuntu 16.4 + nginx
编辑:这是我的配置文件(替换了域和帐户)
\# renew_before_expiry = 30 days
version = 0.12.0
archive_dir = /etc/letsencrypt/archive/domain.com
cert = /etc/letsencrypt/live/domain.com/cert.pem
privkey = /etc/letsencrypt/live/domain.com/privkey.pem
chain = /etc/letsencrypt/live/domain.com/chain.pem
fullchain = /etc/letsencrypt/live/domain.com/fullchain.pem
\# Options used in the renewal process
[renewalparams]
authenticator = standalone
installer = None
account = d78fibhjdsfbgqa8734gfu9ig93
答案1
authenticator = standalone
这行代码基本上意味着 certbot 启动一个独立的网络服务器。为此,您必须先关闭常规网络服务器,然后运行 certbot,然后重新启动网络服务器。
这可以通过
certbot -q renew --standalone --prehook "/usr/sbin/service nginx stop" --posthook "/usr/sbin/service nginx start"
这将停止 nginx,获取证书,然后重新启动 nginx。
另一种选择是安装python-certbot-nginx
,让 certbot 自动找出 webroot。这是对缺失插件的引用(the requested nginx plugin does not appear to be installed
)。
答案2
您需要安装 certbot nginx 插件。
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx