gpt4 book ai didi

SSL 握手失败 - verisign 链证书 - 包含两个 CA 签名证书和一个自签名证书

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:25 25 4
gpt4 key购买 nike

我遇到了一个问题并试图调试它。我们购买了 Verisign 证书。当我们使用时:

openssl> s_client -connect myweb.com:443 -showcerts

SSL 握手从未完成,最后我们看到错误:

Verify return code: 19 (self signed certificate in certificate chain)

它显示了 3 个 ---BEGIN/END CERTIFICATE--- 标签。链中的两个证书是 Verisign 签名的,但一个是自签名的。

  1. 如果有人可以解释一下这个自签名证书如何出现在 CA 签名证书中?

  2. 此错误 19(证书链中的自签名证书) 是否良性?如果不是,可能是什么原因造成的?

  3. 客户端在受信任的存储中有 CA 证书,但自签名证书没有任何内容。你认为这会导致问题吗?如果是,我该如何:

    1. 如何从链证书中删除自签名证书,只留下链中的 2 个 CA 签名证书?
    2. 将此自签名证书添加到客户信任的商店?

最佳答案

CA 颁发的根证书只是自签名证书(它可能反过来用于颁发中间 CA 证书)。它们并没有太多特别之处,除了它们在许多浏览器或操作系统信任 anchor 中已被默认导入。

虽然浏览器和一些工具被配置为在默认情况下查找受信任的 CA 证书(其中一些可能是自签名的),但据我所知,openssl 命令是't.

因此,任何提供完整证书链的服务器,从其终端实体证书(服务器的证书)到根 CA 证书(可能带有中间 CA 证书)都将在链中拥有一个自签名证书:根 CA。

openssl s_client -connect myweb.com:443 -showcerts 没有任何特殊理由信任 Verisign 的根 CA 证书,因为它是自签名的,您将获得“self证书链中的签名证书"。

如果你的系统有一个位置有一组默认信任的证书(我认为 /etc/pki/tls/certs 在 RedHat/Fedora 和 /etc/ssl/certs 在 Ubuntu/Debian 上),您可以配置 OpenSSL 以将它们用作信任 anchor ,例如:

openssl s_client -connect myweb.com:443 -showcerts -CApath /etc/ssl/certs

关于SSL 握手失败 - verisign 链证书 - 包含两个 CA 签名证书和一个自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com