V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
3825995121
V2EX  ›  程序员

大家国内项目单域名免费 ssl 证书自动续签都是用什么方法呢

  •  1
     
  •   3825995121 · 98 天前 · 4066 次点击
    这是一个创建于 98 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在腾讯云后台申请的证书有效期已变为 90 天,为了减少手动续签的麻烦,可以通过自动续签来解决。目前使用的TrustAsia单域名免费证书,是通过腾讯云申请的。

    已知的证书服务商

    1. Let's Encrypt
    2. ZeroSSL
    3. TrustAsia

    过去曾有过Let's Encrypt被国内网络污染的情况,考虑到TrustAsia与国内云服务器厂商有合作,因此很多国内厂商推荐使用TrustAsia

    由于平时会开发小程序,担心使用Let's EncryptZeroSSL时会遇到不信任的情况或速度较慢的问题。

    目前使用freessl申请的是TrustAsia DV 证书,通过 DNS 验证,服务器上部署了acme.sh脚本进行证书管理。acme.sh 的证书请求服务地址是freessl提供的,自动处理证书续签后,重新加载 Nginx ,个人使用 RSA 加密。发现freessl申请的是TrustAsia RSA DV TLS CA G3,而腾讯云申请的是TrustAsia RSA DV TLS CA G2,G2 和 G3 版本之间存在区别。

    查询到freessl的背景,可能是由个人开发者或小公司运营,因此对其安全性有所担忧,并不了解其如何与TrustAsia合作提供免费的单域名和泛域名证书。

    打算迁移到ZeroSSL,不确定其使用效果。如果有使用过的经验分享,特别是小程序内用户量较大的情况下,可以通过微信的WE 分析查看网络请求失败的统计数据。

    微信小程序 HTTPS 证书要求

    微信小程序对于 HTTPS 证书的要求如下:

    1. HTTPS 证书必须有效:证书不能过期。
    2. 证书必须被系统信任:证书的根证书必须是系统内置信任的。
    3. 证书与域名匹配:部署 SSL 证书的网站域名必须与证书中的域名一致。
    4. 证书在有效期内:证书不能过期。
    5. 证书信任链完整:服务器需要配置完整的证书信任链。
    6. iOS 不支持自签名证书
    7. iOS 证书必须满足 Apple App Transport Security (ATS)的要求
    8. TLS 版本要求:必须支持 TLS 1.2 及以上版本。部分旧版 Android 设备可能不支持 TLS 1.2 ,因此确保服务器支持 TLS 1.2 及以下版本。
    9. 证书兼容性:部分 CA 可能不被操作系统信任,开发者应选择被微信小程序和各操作系统支持的证书。
    10. WoSign 和 StartCom 限制:Chrome 56/57 版本内核已对 WoSign 、StartCom 的证书限制。

    可以通过以下命令检查证书的有效性:

    openssl s_client -connect example.com:443
    

    也可以使用其他在线工具验证证书。如 https://myssl.com/ssl.html

    36 条回复    2024-09-14 10:33:53 +08:00
    3825995121
        1
    3825995121  
    OP
       98 天前
    https://myssl.com/ssl.html 测试了 https://zerossl.com/
    提示不合规
    ```
    降级原因:

    1. 使用了不可信的证书,降级为 T (特殊等级)
    ```
    mohumohu
        2
    mohumohu  
       98 天前
    我选择 Google 证书
    bug123
        3
    bug123  
       98 天前
    腾讯云阿里云买一个一年有效期的,几十块不贵
    Tink
        4
    Tink  
       98 天前   ❤️ 1
    acme.sh 一把梭
    RobinHuuu
        5
    RobinHuuu  
       98 天前 via iPhone
    zerossl ,letsencrypt, google 这几个免费的哪个不满足,1L 你测试的不仅仅是证书本身,更多的是 ssl 安全相关的 http 容器配置。我也是 zero ,但得到了 a 级评级
    xiangyuecn
        6
    xiangyuecn  
       98 天前
    freessl 就是亚信自家的,去年问过亚信客服为什么 freessl 可以直接调他们的接口,客服说使 freessl 是他们家的
    JensenQian
        7
    JensenQian  
       98 天前
    用 caddy 就完事了
    别折腾 acme
    3825995121
        8
    3825995121  
    OP
       98 天前
    @xiangyuecn 那就放心了 我查了域名找到了一家空壳公司 😅
    hingle
        9
    hingle  
       98 天前
    traefik + zerossl
    3825995121
        10
    3825995121  
    OP
       98 天前
    @RobinHuuu 有可能是的 有些安全配置 没有加上
    3825995121
        11
    3825995121  
    OP
       98 天前
    Karte
        12
    Karte  
       98 天前
    certbot 自动更新替换, 和 acme.sh 一个道理.
    Bingchunmoli
        13
    Bingchunmoli  
       98 天前 via Android
    @RobinHuuu 甚至能做到 s
    esee
        14
    esee  
       98 天前 via Android
    Let's Encrypt 真的会有问题吗?因为我有多个二级域名的服务,懒得一个个申请,所以我都是申请了泛域名证书,目前还没收到反馈说有啥问题的。
    hoofei
        15
    hoofei  
       98 天前
    一直在用 Let's Encrypt ,没发现出过啥问题。
    bug123
        16
    bug123  
       98 天前
    @3825995121 阿里云里面有一个:个人测试证书( pro ) ,68 一年。
    keling
        17
    keling  
       98 天前
    一直在用 Cetbot ,有人说说跟 acme.sh 什么区别吗
    austinuit
        18
    austinuit  
       98 天前
    可以用 Let's Encrypt
    austinuit
        19
    austinuit  
       98 天前
    caddy2 web 服务器
    OutOfMemoryError
        20
    OutOfMemoryError  
       98 天前
    lego 在一台服务器上签发,cron 来 renew ,然后 nfs 到内网要用的机器上,nginx 正常用
    wuxuehai2020
        21
    wuxuehai2020  
       98 天前
    acme.sh 咯,要不然就是宝塔管理了
    lerry
        22
    lerry  
       98 天前
    Caddy+Aliyun/Cloudflare 插件,然后就忘了证书这件事吧

    https://lerry.me/post/2024/09/caddy-simplify-ssl-certificate-management
    purrgil
        23
    purrgil  
       98 天前
    bt 面板 1panel 面板版都有 ssl 自动续签。
    bt 面板自动续签经常失败,原因不明,反馈过多次,累计几年了还没更新好。

    设置 dns 域名验证,会添加一条 CAA 记录,
    会导致收费商业 SSL 在验证的不能通过,
    导致需要找客服人工客服处理,非常耽误事

    1panel 刚投入使用,续签功能还得验证看
    flynaj
        24
    flynaj  
       98 天前 via Android
    Let's Encrypt 用的最多,兼容性各方面都是第一。目前有 5 亿多个活跃证书。
    sn0wdr1am
        25
    sn0wdr1am  
       98 天前
    acme.sh ,三个月自动续期。
    sshnuke
        26
    sshnuke  
       98 天前
    certbot 的 renew 好像不能指定更新一个域名而是一把更新,还要从记录里捞哪些域名被更新了
    有没有参数能指定更新一个域名的
    毕竟我还要跑后续脚本把被更新的证书推到腾讯云上去
    lcy630409
        27
    lcy630409  
       97 天前
    用的国内 tx 服务器
    添加 v2ray
    安装 acme.sh ,申请谷歌泛域名(我有两个域名,谷歌家 可以一个证书放两个域名)证书,到期自动续费 自动覆盖站点证书 重启 bt 重启 nginx
    将域名进行加密 输出 json ,,其他自己家里 或者需要证书的地方 获取前面的 json 对比版本,自动更新
    mouyase
        28
    mouyase  
       97 天前
    我用 OP 发的工具测了一下,是 A+
    yikuo
        29
    yikuo  
       97 天前
    @flynaj 自从 Let's Encrypt 之前的根证书过期换了新的根证书后,很多旧设备就不兼容了,ZeroSSL 的兼容性要好很多。

    https://letsencrypt.org/zh-cn/docs/certificate-compatibility/

    https://help.zerossl.com/hc/en-us/articles/360058294074-ZeroSSL-Compatibility-List
    ranaanna
        31
    ranaanna  
       97 天前
    @sshnuke #28 certbot renew --cert-name domain.com
    lisxour
        32
    lisxour  
       97 天前
    @bug123 #16 这种最怕就是等用户起来后割韭菜
    Dragonphy
        33
    Dragonphy  
       97 天前
    开源的 SSL 证书管理工具,可以帮助你自动申请、部署 SSL 证书,并在证书即将过期时自动续期。
    https://github.com/usual2970/certimate
    coagent
        34
    coagent  
       97 天前
    acme.sh ,结合 ReloadCmd ,可以自由扩展,最近在一个项目中的实践:
    - 域名解析服务使用腾讯云的,即 DNSPod ,acme.sh dns api 支持。
    - 直接申请通配符的证书,申请了 *.dev.domain.com, *.staging.domain.com, *.domain.com 等。
    - ReloadCmd 调用 Bash Shell 脚本,脚本根据场景用 Ansible 等去刷新绑定使用了证书的地方,目前已应用到 Nginx, APISIX, HAProxy, GitLab, Harbor, K8s 等自部署的程序,用 Python 实现支持云厂商 CLB, ALB 也是可行的。
    fox0001
        35
    fox0001  
       97 天前 via Android
    cloudflare dns ,可以带免费证书,续签都免了
    spug
        36
    spug  
       96 天前
    在这里申请一个一年有效期的 49 块钱,而且到期前会有多重提醒方式自动提醒: https://ssl.spug.cc/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1375 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:53 · PVG 07:53 · LAX 15:53 · JFK 18:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.