Letsencrypt certbot有效,但续订不会

时间:2017-04-10 08:00:25

标签: apache ssl https dns lets-encrypt

我有一台服务器,它有一个过期的letsenrypt证书。为了解决这个问题,我简单地运行certbot --apache,它运行没有问题并解决了过期的证书。

为了防止将来再出现此问题,我希望证书能够自动续订,因此在the instructions here之后我运行了certbot renew --dry-run,但结果出现了错误:

  

尝试从/etc/letsencrypt/renewal/cms.ourdomain.com.conf续订证书会产生意外错误:授权程序失败。 cms.ourdomain.com(tls-sni-01):urn:acme:error:connection ::服务器无法连接到客户端以验证domain :: DNS问题:SERVFAIL查找CAA for cms.ourdomain.com。跳过。

由于certbot --apache运行良好,我不知道为什么这个续订会因DNS问题而失败。为了确保我再次运行certbot --apache强制再次续订证书,这再次正常。所以DNS似乎没有任何问题。

有谁知道这个问题的原因是什么,或者我如何调试它?欢迎所有提示!

1 个答案:

答案 0 :(得分:0)

据我所见,certbotcertbot --apache实际上采用了一些明显不同的代码路径。也许尝试certbot --apache --dryrun

偶然地,我放弃了Apache特定的实现。我发现停止apache并运行certbot certonly --standalone -d example.com可以很好地生成密钥和证书(在您的apache配置中手动指向它们),然后生成certbot renew,并在{{1}中使用前和后钩子脚本}停止和启动Apache效果很好。

我的脚本如下:

/etc/letsencrypt/renewal-hooks/{pre|post}/apache2.sh
#!/bin/bash

# certbot pre renewal
# stop apache

systemctl stop apache2
sleep 5s