Letsencrypt更新证书renew时出现错误produced an unexpected error: Missing command line flag or config entry
Posted 神神的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Letsencrypt更新证书renew时出现错误produced an unexpected error: Missing command line flag or config entry相关的知识,希望对你有一定的参考价值。
一直使用的Letsencrypt的HTTPS证书,之前都正常自动更新,今天突然收到邮件提示域名证书快过期了,于是手动执行renew结果失败,出现一堆错误信息:
Attempting to renew cert (xxx.me) from /etc/letsencrypt/renewal/xxx.me.conf produced an unexpected error: Missing command line flag or config entry for this setting:
Input the webroot for api.xxx.me:. Skipping.
...
还有其他几个域名证书全部都提示相同错误,google搜索下来几乎没有看到有相关的资料和解决办法,后来对比了其他服务器的证书配置信息发现应该是证书的配置出现了莫名其妙的错误,很奇怪。
解决办法:
打开对应的证书配置文件,路径:/etc/letsencrypt/renewal/
vi /etc/letsencrypt/renewal/xxx.me.conf
注意查看配置节点:[[webroot_map]]
下的域名与web路径是否存在且路径正确,我这里发现居然全都是空白的,一个域名都没有配置,不知道是不是 certbot-auto
版本的问题,当前出问题的版本是 0.31.0
,我已经更新到 0.34.2
完整正确的配置格式如下:
# renew_before_expiry = 30 days
version = 0.34.2
archive_dir = /etc/letsencrypt/archive/xxx.me
cert = /etc/letsencrypt/live/xxx.me/cert.pem
privkey = /etc/letsencrypt/live/xxx.me/privkey.pem
chain = /etc/letsencrypt/live/xxx.me/chain.pem
fullchain = /etc/letsencrypt/live/xxx.me/fullchain.pem
# Options used in the renewal process
[renewalparams]
authenticator = webroot
account = e50123456cb40137cea5e88cfa3bb78b
webroot_path = /www/xxx.me/htdocs/www,
server = https://acme-v02.api.letsencrypt.org/directory
[[webroot_map]]
xxx.me = /www/xxx.me/htdocs/www
api.xxx.me = /www/xxx.me/htdocs/www
我这里就是缺少了下面这部分的配置,一个都没有,以前自动更新都是正常的,奇怪
[[webroot_map]]
xxx.me = /www/xxx.me/htdocs/www
api.xxx.me = /www/xxx.me/htdocs/www
添加上域名和对应的web根目录的绝对路径就可以了,若有多个证书则会存在多个配置文件,也这样修改,
然后再次执行 renew
/usr/local/certbot/certbot-auto renew --quiet --renew-hook "/usr/local/nginx/sbin/nginx -s reload"
现在证书已更新到最新日期了。
以上是关于Letsencrypt更新证书renew时出现错误produced an unexpected error: Missing command line flag or config entry的主要内容,如果未能解决你的问题,请参考以下文章
在 Powershell 中设置 IIS 绑定证书时出现问题
使用 charles web 调试代理时出现“证书文件不存在”错误