V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
aocif23
V2EX  ›  Linux

alpine 用国内源,出现 https 证书问题

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

    一开始用的是 v3.7 版,中科大的源(清华的源同样问题),默认为 http,改为 https 后更新不了,出错提示如下

    #apk update
    fetch https://mirrors.ustc.edu.cn/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
    127499998981068:error:14007086:SSL routines:CONNECT_CR_CERT:certificate verify failed:ssl_clnt.c:1026:
    ERROR: https://mirrors.ustc.edu.cn/alpine/v3.7/main: Permission denied
    WARNING: Ignoring APKINDEX.1076f322.tar.gz: No such file or directory
    fetch https://mirrors.ustc.edu.cn/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
    127499998981068:error:14007086:SSL routines:CONNECT_CR_CERT:certificate verify failed:ssl_clnt.c:1026:
    ERROR: https://mirrors.ustc.edu.cn/alpine/v3.7/community: Permission denied
    WARNING: Ignoring APKINDEX.ca14b9dd.tar.gz: No such file or directory
    

    后来试了几个版本 3.6,3.9,3.10 ,3.12 ,3.14 都可以用 https(USTC),只有 3.7 和 3.8 不用了 https 。

    改回 http 后是正常的

    #apk update
    fetch http://mirrors.ustc.edu.cn/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
    fetch http://mirrors.ustc.edu.cn/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
    v3.7.3-184-gffd32bfd09 [http://mirrors.ustc.edu.cn/alpine/v3.7/main]
    v3.7.3-194-gcddd1b2302 [http://mirrors.ustc.edu.cn/alpine/v3.7/community]
    

    最后,v3.7 用南京大学的源后,可以使用 https

    #apk update
    fetch https://mirrors.nju.edu.cn/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
    fetch https://mirrors.nju.edu.cn/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
    v3.7.3-184-gffd32bfd09 [https://mirrors.nju.edu.cn/alpine/v3.7/main]
    v3.7.3-194-gcddd1b2302 [https://mirrors.nju.edu.cn/alpine/v3.7/community]
    

    还好这个发行版容量小安装快(选它也是因为容量问题),否则都不会安装几个版本来测试。

    第 1 条附言  ·  46 天前
    #6 和 #8 的方法解决了,如果用的是 alpine-standard 要先安装 ca-certificates
    9 条回复    2021-10-12 03:59:41 +08:00
    iBugOne
        1
    iBugOne   46 天前 via Android   ❤️ 1
    据我所知,USTC 和 TUNA 镜像站都使用 Let's Encrypt 提供的免费 SSL 证书,而 LE 原先使用的根证书 DST Root CA X3 已于 9 月 30 日过期,新的 ISRG Root X1 根证书默认不在旧版系统的信任列表里,详情可以参见 https://github.com/tuna/issues/issues/1342
    yzwduck
        2
    yzwduck   46 天前   ❤️ 2
    问题确实是在 Let's Encrypt 的根证书上,但不是 CA 列表问题。
    ISRG Root X1 ( https://crt.sh/?id=9314791) 的证书确实在 /etc/ssl/certs/ca-certificates.crt 里,但是 ISRG 原先证书链的根证书 DST Root CA X3 ( https://crt.sh/?id=8395) 过期了,很多旧版本的 SSL 库在 X1 列在 CA 里的情况下,仍然因为 X3 过期而拒绝连接。
    解决方法貌似只能更新 SSL 库。

    在 macOS 10.15 以及之前的系统上,LibreSSL 也因为相同原因,无法连接 Let's Encrypt 的网站。
    eason1874
        5
    eason1874   46 天前
    没用过 Alpine,我的树莓派这样三步解决,删掉过期根证书,注释配置,然后更新

    rm /etc/ssl/certs/DST_Root_CA_X3.pem

    vi /etc/ca-certificates.conf
    !mozilla/DST_Root_CA_X3.crt

    sudo update-ca-certificates
    aocif23
        6
    aocif23   46 天前
    #4
    @taoky
    直接从网站解决问题,更新正常了。

    #5
    @eason1874
    Alpine3.8 没有这个文件,/etc/ssl/certs/DST_Root_CA_X3.pem
    编辑 /etc/ca-certificates.conf 注释 mozilla/DST_Root_CA_X3.crt 后
    sudo update-ca-certificates
    问题依旧(所以用清华的源来测试)。
    aocif23
        7
    aocif23   46 天前
    #6
    @aocif23
    问题依旧(用清华的源来测试)。
    eason1874
        8
    eason1874   46 天前   ❤️ 2
    @aocif23 没有单独文件那应该是统一放在了同一个 cert.pem 里,你打开那个文件(先备份一份到别处),找到 DST Root CA X3 那部分证书删掉。步骤应该差不多,只是证书位置不一样。找到过期证书,删掉,更新缓存。

    测试网址也可以用 https://helloworld.letsencrypt.org/
    aocif23
        9
    aocif23   46 天前
    #8
    @eason1874
    找到 /etc/ssl/cert.pem 并删除 DST Root CA X3 部分,更新缓存解决了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2333 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 06:05 · PVG 14:05 · LAX 22:05 · JFK 01:05
    ♥ Do have faith in what you're doing.