lnmp1.5使用Let'sEncrypt创建SSL证书自动续期问题

softyun3年前云服务器19

飘易有一台服务器安装了LNMP 1.5的运行环境,然后创建虚拟主机VHOST的时候,使用了Let'sEncrypt创建了免费的SSL证书,这个证书是完全免费的,但是有3个月的限制,意味着3个月后就需要续期,幸运的是LNMP已经自动帮我们添加了一个计划任务,用于Let'sEncrypt SSL免费证书的自动续期。

 

LNMP 提供了一个 ACME.SH 脚本,方便我们执行SSL续期。

 

查看cron计划任务:

crontab -l52 0 * * * "/usr/local/acme.sh"/acme.sh --cron --home "/usr/local/acme.sh" > /dev/null

这个自动续期的脚本 acme.sh 会每天自动运行一次。

 

但是飘易发现有几个域名的SSL证书到期了之后,并没有自动续期成功。于是手动执行以下这个脚本:

[Fri Jan 17 14:16:21 CST 2020] Renew: 'dongfang.piaoyi.org'[Fri Jan 17 14:16:24 CST 2020] Single domain='dongfang.piaoyi.org'[Fri Jan 17 14:16:24 CST 2020] Getting domain auth token for each domain[Fri Jan 17 14:16:24 CST 2020] Getting webroot for domain='dongfang.piaoyi.org'[Fri Jan 17 14:16:24 CST 2020] Getting new-authz for domain='dongfang.piaoyi.org'[Fri Jan 17 14:16:27 CST 2020] The new-authz request is ok.[Fri Jan 17 14:16:27 CST 2020] Verifying:dongfang.piaoyi.org[Fri Jan 17 14:16:31 CST 2020] dongfang.piaoyi.org:Verify error:Invalid response from dongfang.piaoyi.org/.well-known/acme-challenge/JyjWREY2lkrcpAFAD5gkZ0LffaTB2xQxB9Id-my5Puw: [Fri Jan 17 14:16:31 CST 2020] Please check log file for more details: /usr/local/acme.sh/acme.sh.log[Fri Jan 17 14:16:32 CST 2020] Error renew dongfang.piaoyi.org.

从这个错误来看,可以看到SSL需要验证域名下的这个文件:

[Fri Jan 17 14:16:27 CST 2020] _currentRoot='/storage/wwwroot/dongfang.piaoyi.org'[Fri Jan 17 14:16:27 CST 2020] wellknown_path='/storage/wwwroot/dongfang.piaoyi.org/.well-known/acme-challenge'[Fri Jan 17 14:16:27 CST 2020] writing token:JyjWREY2lkrcpAFAD5gkZ0LffaTB2xQxB9Id-my5Puw to /storage/wwwroot/dongfang.piaoyi.org/.well-known/acme-challenge/JyjWREY2lkrcpAFAD5gkZ0LffaTB2xQxB9Id-my5Puw[Fri Jan 17 14:16:27 CST 2020] Changing owner/group of .well-known to www:.....[Fri Jan 17 14:16:31 CST 2020] dongfang.piaoyi.org:Verify error:Invalid response from dongfang.piaoyi.org/.well-known/acme-challenge/JyjWREY2lkrcpAFAD5gkZ0LffaTB2xQxB9Id-my5Puw:

可以看到Let'sEncrypt ACME.sh 这个脚本在写验证文件时,写错路径了:

lnmp或lnmpa 的话 /usr/local/nginx/conf/ssl/域名/域名.conf lamp的话 /usr/local/apache/conf/ssl/域名/域名.conf

Le_Webroot='/storage/wwwroot/dongfang.piaoyi.org'

修改为

Le_Webroot='/storage/wwwroot/dongfang.piaoyi.org/public'

 

重新执行acme脚本:

[Fri Jan 17 14:36:05 CST 2020] Renew: 'dongfang.piaoyi.org'[Fri Jan 17 14:36:06 CST 2020] Single domain='dongfang.piaoyi.org'[Fri Jan 17 14:36:06 CST 2020] Getting domain auth token for each domain[Fri Jan 17 14:36:06 CST 2020] Getting webroot for domain='dongfang.piaoyi.org'[Fri Jan 17 14:36:06 CST 2020] Getting new-authz for domain='dongfang.piaoyi.org'[Fri Jan 17 14:36:10 CST 2020] The new-authz request is ok.[Fri Jan 17 14:36:10 CST 2020] Verifying:dongfang.piaoyi.org[Fri Jan 17 14:36:14 CST 2020] Success[Fri Jan 17 14:36:14 CST 2020] Verify finished, start to sign.[Fri Jan 17 14:36:15 CST 2020] Cert success.[Fri Jan 17 14:36:15 CST 2020] Your cert is in  /usr/local/nginx/conf/ssl/dongfang.piaoyi.org/dongfang.piaoyi.org.cer [Fri Jan 17 14:36:15 CST 2020] Your cert key is in  /usr/local/nginx/conf/ssl/dongfang.piaoyi.org/dongfang.piaoyi.org.key [Fri Jan 17 14:36:16 CST 2020] The intermediate CA cert is in  /usr/local/nginx/conf/ssl/dongfang.piaoyi.org/ca.cer [Fri Jan 17 14:36:16 CST 2020] And the full chain certs is there:  /usr/local/nginx/conf/ssl/dongfang.piaoyi.org/fullchain.cer [Fri Jan 17 14:36:16 CST 2020] Run reload cmd: /etc/init.d/nginx reloadReload service nginx...  done[Fri Jan 17 14:36:16 CST 2020] Reload success

SSL 续期成功!

并且以后再过期的时候,CRON计划任务也会自动续期了。

 

 

其他问题

1、如果之前在nginx的配置文件里启用了 http 强制跳转到 http 的配置,这个地方也会续期失败,需要临时先将这段配置注释掉:

        # http重定向301跳转http        #if ($server_port !~ 443){        #    rewrite ^(.*)$ $host$1 permanent;        #}

原因很简单,现在http已经过期了,再强制跳转到http去验证下面的文件,当然是不成功的。

 

2、如果你有PC站和移动站自动跳转适配过,也需要注意临时取消自动跳转,比如 移动端的配置:

        # PC客户端跳转        if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {            #rewrite ^(.*) tai.test$1 redirect;        }

否则验证文件会跳转到对应的PC端路径下去拉取,这个当然是错误的。

 

3、频率限制错误

    new-authz error: {"type":"urn:acme:error:rateLimited","detail":"Error creating new authz :: too many failed authorizations recently: see letsencrypt.org/docs/rate-limits/","status": 429} 

这个是说明触发了SSL认证的频率限制了,目前有一个限制是:每个账户每小时每域名有最多验证失败 5 次的限制。我们稍微等一会就好了。关于这个频率限制,具体参考: letsencrypt.org/docs/rate-limits/

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

香港服务器具备哪些优势

香港服务器具备的优势有:1、有国内电信和联通互联相通的线路优势;2、有充足的国际出口带宽优势;3、有免备案的优势;4、有ARP攻击防护能力和DDOS攻击防护能力,安全性高和可靠性强的优势。具体内容如下...

南昌高防服务器租用多少钱一个月呢?

目前互联网行业发展的迅速起来,各个互联网行业对于南昌高防服务器要求也是越来越高的。但是很多互联网行业对于南昌高防服务器防御带宽都是一个挺模糊的概念的,不知道如何选择一个正确南昌高防服务器,这个时候你们...

埃及服务器好不好,埃及速度快不快?

埃及服务器好不好、埃及速度快不快、埃及服务器租用哪家好?推荐,多年专注于:埃及服务器、埃及服务器租用、免备案埃及服务器租用、埃及网站服务器、埃及服务器独享带宽、海外埃及主机租用、埃及服务器价格、埃及托...

美国服务器中怎么预防硬盘故障

美国服务器中预防硬盘故障的方法:1、选择正确的存储系统,加强硬盘容错能力;2、恢复软件,做磁盘全备份;3、使用其他设备,数据实时备份;4、专业数据恢复技术,停止硬盘读写数据;5、关注硬盘运行情况,仔细...

租用美国高防服务器的好处有哪些

租用美国高防服务器的好处有:1、美国高防服务器防御强,能够有效防御DDOS攻击和CC攻击;2、美国高防服务器的稳定性好,能够保障服务器不间断正常运作;3、美国高防服务器更符合成本需求,服务商提供了7*...

常见的网站服务器有哪些类型?各有哪些优缺点?

常见的网站服务器有哪些类型?我们先想要搭建一个网站,服务器是必不可少的。一个稳定可靠的服务器对于网站的运营是有一定的益处的,因此选择合适的服务器很重要,但是现在市场的网站服务器类型很多,例如物理服务器...