腾讯云 `API` 服务 `Let's Encrypt` 证书 `Renew` 失败 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zealzz
V2EX    程序员

腾讯云 `API` 服务 `Let's Encrypt` 证书 `Renew` 失败

  •  
  •   zealzz
    zealzhangz 2018-11-13 19:20:28 +08:00 5453 次点击
    这是一个创建于 2581 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一年多了之前 Renew 都是正常的,就在双十一当天 Renew 一直失败,各位 V 友有遇到这种情况吗?有思路的给个提示,下面是部分信息。

    1. 子域 api.xxxx.xx,域名在阿里云管理,DNS 配的 A 记录
    2. 使用的 standalone 模式, Renew 前已经把本地的 Nginx 关闭了。80、443 端口没被占用
    3. 把服务器重启后 Renew 也是一样的错
    4. 网上也看到一些类似情况,但也解决不了

    部分错误日志如下:

    { "identifier": { "type": "dns", "value": "api.xxxx.xx" }, "status": "invalid", "expires": "2018-11-18T15:33:56Z", "challenges": [ { "type": "http-01", "status": "invalid", "error": { "type": "urn:ietf:params:acme:error:connection", "detail": "Fetching http://api.xxxx.xx/.well-known/acme-challenge/xxxxxxxx: Error getting validation data", "status": 400 }, "url": "https://acme-v02.api.letsencrypt.org/acme/challenge/jgMy9WxHILHaUScF9joUpdXZ7uCRDSM2mabGDDn_22k/9189513629", "token": "xxxxxxxx", "validationRecord": [ { "url": "http://api.xxxx.xx/.well-known/acme-challenge/xxxxxxxx", "hostname": "api.xxxx.xx", "port": "80", "addressesResolved": [ "xx.xxx.xx.xx" ], "addressUsed": "xx.xxx.xx.xx" } ] } ] } 2018-11-11 23:35:02,624:DEBUG:certbot.reporter:Reporting to user: The following errors were reported by the server: Attempting to renew cert (api.xxxx.xx) from /etc/letsencrypt/renewal/api.xxxx.xx.conf produced an unexpected error: Failed authorization procedure. api.xxxx.xx ( http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://api.xxxx.xx/.well-known/acme-challenge/k9NoezsP97OBAnv0hP_a6jbV_9OKhFey5QOqt9ON2nk: Error getting validation data. Skipping. All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/api.xxxx.xx/fullchain.pem (failure) 
    第 1 条附言    2018-11-14 12:49:17 +08:00
    • V 友果然厉害!找到真正原因了:备案的原因。
    • 因为主域名是在阿里云备案的,还需要再腾讯云接入备案。否则 Letsecrypt Server 再使用 HTTP 协议验证的时候会被腾讯云墙。当前也发现一个绕过墙方法,使用 tls-sni renew 证书。
    • 但是因为安全问题:TLS-SNI-01 is deprecated, and will stop working soon.,但是现在至少还能用,再用一段时间,实在不行就只能接入备案了。
    19 条回复    2018-11-14 15:51:33 +08:00
    Cherishxxyy
        1
    Cherishxxyy  
       2018-11-13 20:40:03 +08:00
    根据你的描述判断,你用的是 Let's Encrypt 的 SSL 证书,使用的是阿里云的域名,不知道用的是哪家的服务器,但是该问题可能出在你的 DNS or SSL 证书 or Nginx 配置,这个和腾讯云没多大关系吧。。。
    Dk2014
        2
    Dk2014  
       2018-11-13 20:46:48 +08:00
    acme 命令呢,不清楚你这到底是用哪个模式
    ahu
        3
    ahu  
       2018-11-13 21:03:58 +08:00 via Android
    不知道双十一当天腾讯的 dns 挂了吗?那怎么能成功!
    ywgx
        4
    ywgx  
       2018-11-13 21:06:02 +08:00 via iPhone
    和良心云无关
    zealzz
        5
    zealzz  
    OP
       2018-11-13 22:01:17 +08:00 via Android
    @Cherishxxyy 虚拟机是腾讯云的,实在找不到问题,给腾讯云提了个工单,日志作为附件。小哥给我接了个日志的报错图。我想说我又不瞎能看到啊,感觉也应该和云关系不大,防火墙啥的也没开。真是蛋疼。接下来只能来研究工具的文档了,看看能不能 debug 一下。
    zealzz
        6
    zealzz  
    OP
       2018-11-13 22:02:16 +08:00 via Android
    @Dk2014 大兄弟说的啥模式,standalone 模式呀
    zealzz
        7
    zealzz  
    OP
       2018-11-13 22:03:02 +08:00 via Android
    @ahu DNS 是阿里云的,今天试了一样不行
    zealzz
        8
    zealzz  
    OP
       2018-11-13 22:03:39 +08:00 via Android
    @ywgx 应该是无关,就是找不到问题,蓝瘦
    danc
        9
    danc  
       2018-11-13 22:36:59 +08:00
    升级 acme,apt update && apt upgrade,关闭 nginx 其他占用 80 和 443 端口的服务,service nginx stop
    BOYPT
        10
    BOYPT  
       2018-11-14 00:02:13 +08:00
    你自己从第三方访问 http://api.xxxx.xx/能正确返回吗?也有可能你这个域名没备案,被腾讯云墙了。
    zealzz
        11
    zealzz  
    OP
       2018-11-14 01:02:15 +08:00 via Android
    @BOYPT 主域名在阿里云备案了,虚拟机在腾讯云上,证书过期之前访问一直是正常的。我明天吧 https 去掉看看 http 是否能正常访问。
    zealzz
        12
    zealzz  
    OP
       2018-11-14 01:03:14 +08:00 via Android
    @danc 试过了,还是不行
    zwh2698
        13
    zwh2698  
       2018-11-14 05:59:16 +08:00 via Android
    删掉,重新申请,就可以
    zealzz
        14
    zealzz  
    OP
       2018-11-14 12:41:40 +08:00
    @BOYPT 大胸弟,正解。的确是因为备案的原因。因为被腾讯云墙了所以 Letsencrypt 无法验证证书。发现一个方法 使用 tls-sni 可以绕过腾讯云的墙。
    zealzz
        15
    zealzz  
    OP
       2018-11-14 12:50:25 +08:00
    @zwh2698 是因为备案的原因
    realpg
        16
    realpg  
    PRO
       2018-11-14 14:22:32 +08:00
    acme.sh 不好么
    cloudxns,dnspod 都行
    BOYPT
        17
    BOYPT  
       2018-11-14 15:16:29 +08:00
    @zealzz #14 另外一个方法是走 dns-01 challenge 啦,这个需要修改 DNS 记录添加 TXT 记录来提供校验;
    手工操作太麻烦了,我用 caddy 做服务器,这些都自动化的。然后域名是托在 cloudflare 上,caddy 支持一大堆 DNS 托管服务的自动化签注
    zealzz
        18
    zealzz  
    OP
       2018-11-14 15:50:52 +08:00
    @BOYPT
    zealzz
        19
    zealzz  
    OP
       2018-11-14 15:51:33 +08:00
    div class="reply_content">@realpg 赞,我找时间研究一下,以便不时之需
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     845 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 53ms UTC 19:10 PVG 03:10 LAX 11:10 JFK 14:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86