google-chrome - 自签名 SSL 证书(添加到 Keychain 并标记为 Trusted)在 Chrome 中显示无效
问题描述
我创建了Root CA
, Root PEM
. 然后我创建mysite.key
并mysite.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
解决方案
不确定最初的 Chrome 投诉是什么,但是当我上次访问我的页面并展开“不安全”、“继续”等时,我注意到了错误:NET::ERR_CERT_VALIDITY_TOO_LONG
. 那是因为在我的生成脚本中我太贪心了,设置了999天的有效期,这对Chrome来说太多了。我已经设置了 365 天,现在它正在工作。
我已将用于生成根 CA 和自签名 SSL 证书的脚本放在我的存储库中。 https://github.com/zablik/ssl_cert_generator
希望它会帮助其他人。欢迎任何通知。
感谢@Allan Wind 在评论中帮助我;)
推荐阅读
- ansible - ansible 嵌套 jinja 表达式
- vb6 - 如何在 VB6 中声明 OCX 控件但不包含在表单中
- epson - 在爱普生热敏打印机上打印条码
- erlang - Erlang - 根据扩展前的后缀编号对文件列表进行排序
- ghc - 为什么夜间使用堆栈构建时 GHC 版本不符合预期?
- http - Swagger 无法识别 x-www-urleconded 参数
- c# - LibGit2Sharp CheckoutConflictException 和 Stash
- android - 使用 Samsung S5 Mini 启动时未找到 cordova.js
- android - 如何使用 kivy 更改标签的位置
- compiler-errors - Cuda 向量类型的推力支持