首页 > 解决方案 > 自签名 SSL 证书(添加到 Keychain 并标记为 Trusted)在 Chrome 中显示无效

问题描述

我创建了Root CA, Root PEM. 然后我创建mysite.keymysite.crt为我在 Root PEM 上运行的网站mysite.localhost 添加到钥匙串并标记为Always trust

当我访问地址栏左侧的网站时,我看到了Not Secure注释。当我单击它时,会读取证书无效。

但是,当我在弹出窗口中走得更远时,我会看到一个链,其中我的 Root CA 证书IS trust, My website cert IS valid。当我扩展网站的“信任”部分并将其设置为“始终信任”时,不会保存这些更改。

我究竟做错了什么?由于我已将我的证书标记为受信任,因此我想删除此通知。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

更新 我已经检查了证书openssl s_client

openssl s_client -connect raceplace.localhost:443

...
depth=0 C = CA, ST = None, L = NB, O = None, CN = raceplace.localhost
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = CA, ST = None, L = NB, O = None, CN = raceplace.localhost
verify error:num=21:unable to verify the first certificate
verify return:1
....

但是后来我发现终端中的OpenSSL没有使用KeychainAccess,所以我提供了一个CA根证书。

并检查成功:-\

openssl s_client -connect raceplace.localhost:443 -CAfile /path_to/rootCA.pem

.......
Verify return code: 0 (ok)

Chrome 版本 88.0.4324.192 MacOS BigSur 11.2.1

标签: google-chromesslcertificatekeychain

解决方案


不确定最初的 Chrome 投诉是什么,但是当我上次访问我的页面并展开“不安全”、“继续”等时,我注意到了错误:NET::ERR_CERT_VALIDITY_TOO_LONG. 那是因为在我的生成脚本中我太贪心了,设置了999天的有效期,这对Chrome来说太多了。我已经设置了 365 天,现在它正在工作。

我已将用于生成根 CA 和自签名 SSL 证书的脚本放在我的存储库中。 https://github.com/zablik/ssl_cert_generator

希望它会帮助其他人。欢迎任何通知。

感谢@Allan Wind 在评论中帮助我;)


推荐阅读