【问题标题】:Why does NOT my certificate chain contain the CA root certificate?为什么我的证书链不包含 CA 根证书?
【发布时间】:2021-09-12 09:29:17
【问题描述】:

我在centos7主机(azcn-gs1-nginx2)上模拟了一个CA,并使用CA为服务器(azcn-gs1-nginx1)签署证书。

以下是我的工作:

  1. 在 CA azcn-gs1-nginx1 上,生成密钥
cd /etc/pki/CA/private/
openssl  genrsa -aes128 -out  testCA.key 2048
  1. 生成 CA 证书
openssl req -new -x509 -days 1825 -key /etc/pki/CA/private/testCA.key -out  /etc/pki/CA/certs/testCA.crt
  1. 在服务器 azcn-gs1-nginx2 上,生成私钥和证书签名请求。
openssl  genrsa  -out  /etc/pki/tls/private/newServer.key 1024
openssl  req -new  -key  /etc/pki/tls/private/newServer.key  -out  /etc/pki/tls/newServer.csr
  1. 将 newServer.csr 复制到 CA 主机进行签名。
scp /etc/pki/tls/newServer.csr   root@azcn-gs1-nginx2:~/newServer.csr
  1. 在 CA 主机上,签署 newServer.csr,然后复制回 newServer.crt 到服务器 azcn-gs1-nginx2。
openssl x509 -req  -in ./newServer.csr   -CA /etc/pki/CA/certs/testCA.crt  -CAkey /etc/pki/CA/private/testCA.key  -CAcreateserial  -out newServer.crt  -days 1461
scp newServer.crt root@azcn-gs1-nginx2:/etc/pki/tls/certs/newServer.crt
  1. 服务器 azcn-gs1-nginx2 是 Web 服务的反向代理。我在 Nginx 中为 https 配置了 newServer.key 和 newServer.crt。
        ssl_certificate         /etc/pki/tls/certs/newServer_1.crt;
        ssl_certificate_key     /etc/pki/tls/private/newServer.key;
  1. 我在另一个 Ubuntu 主机上。我将 CA 的证书 testCA.crt 导入 Ubuntu 信任库,如下所示:
cp testCA.crt /usr/local/share/ca-certificates/
update-ca-certificates
  1. Ubuntu 的内置浏览器是 firefox。我也导入 testCA.crt 进入 Firefox 的信任库。请看附图。

我打开firefox浏览器并通过https访问网络服务器。预期结果是可以直接打开网页而没有安全警告。

不幸的是,它会发出“您的连接不安全.....”的警告。

而且,证书似乎只包含证书本身。它不包含 CA 的证书。

为什么会这样?如何在 Chain 中获得带有 CA 证书的签名证书? 感谢和问候, 杰

【问题讨论】:

  • Firefox 不使用此信任库,但自带。改为使用 Firefox 设置将受信任的 CA 添加到 Firefox。
  • @Steffen:他们做到了,请参见图 1。 OP:您的图像 2 在 Ubuntu 上并且没有显示 root 丢失,它显示了一个不同的错误:证书中的域名(你放作为 CSR 中的通用名称)与您尝试连接的域名(在 URL 中)不同。您需要使 CSR 和证书与 URL 相同,反之亦然,或者使证书成为通配符(仅一级)。您的图像 3 显示 Windows 上的某些其他浏览器或软件上缺少根,但 Ubuntu 上的 Firefox 没有。
  • @dave_thompson_085:感谢您的敏锐目光。
  • @dave_thompson_085,是的,你是对的。图片是其他问题。证书链非常简单,只需将 2 个 .crt 文件连接成一个。谢谢。

标签: ssl https openssl certificate


【解决方案1】:

感谢您的 cmets。 没错。

其实很简单。 CA 和服务器的 2 个 .crt 文件可以拼接成一个 .crt。那么证书链就是一个整体。

对,2和3的图片是其他问题。

谢谢, 杰

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-17
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 2021-07-22
    • 1970-01-01
    相关资源
    最近更新 更多