自签根证书
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -days *** -x509 -subj "/OU=*** Root CA/O=***/CN=***" -keyout ca.key -out ca.crt -config ca.cnf
ca.cnf 没有什么特别的就不列了
签发 IP 证书
openssl req -new -subj "/C=CN/ **** /CN=10.21.9.2" -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes -keyout ip.key -out ip.csr
openssl x509 -req -CA ca.crt -CAkey ca.key -extfile <(cat v3_ext.cnf <(printf "subjectAltName=IP:10.21.9.2")) -extensions v3_req -CAcreateserial -days *** -in ip.csr -out ip.crt
v3_ext.cnf
[v3_req]
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment
extendedKeyUsage=clientAuth, serverAuth
certificatePolicies=2.23.140.1.2.1
之前在 Linux 上使用上述命令自签了一个根证书,并用该根证书又签了一个 IP 证书部署在 WEB 服务器上. 将自签的根证书导入 Windows 7/10 的信任根证书域后,用浏览器访问这个 IP 的 WEB 服务, 无任何安全提示证书状态都显示正常. 下面将 Windows 下证书基本信息帖出.
ROOT CA | IP 证书 |
将这个根证书导入的到 macOS 中 系统 这个域 并更改了信任,ROOT CA 在 macOS 状态如下图: (注: 这里选择全部始终信任的话,证书评估那里会有问题)
信任状态 | 证书详细 | 证书评估 |
使用 Edge 和 safari 两个浏览器都提示问题, Edge 看不出什么信息(注: macOS 和 Windows 使用的 Edge 浏览器版本都一样),在 safari 错误详细中看到如下提示:
个人猜测问题可能有:
感觉上面的可能比较小,还是有细节参数或者是配置方面的问题,那么问题出在了哪里,有大佬知道吗?
1
vcn8yjOogEL 2023-07-13 11:28:55 +08:00 via Android
|
2
ac169 OP |
3
ac169 OP 最新进展是 使用根证书签发了一个 Edge 描述文件 提示验证成功. 所以我想根证书及导入操作应该是没有问题的. 问题还是出在签发的 IP 证书参数细节上.
Edge 描述文件 效果图 <img src="https://i.ibb.co/RP88zRM/edge.jpg" alt="edge" border="0"> |
4
vcn8yjOogEL 2023-07-13 12:45:22 +08:00 via Android
|
5
ac169 OP @vcn8yjOogEL
不对啊, windows 和 macOS 我都用 Edge (并且还是同版本) 浏览器来访问过! windows 没有问题, 而 macOS 上 edge 和 safari 访问都有提示, 只是 在 safari 错误有更详细所以我就截图了 safari 的结果! 有没有可能是系统的区别? 要提供打包证书这个问题, 可以试试重新生成一下, 再看 至于图的问题我也无能为力,毕竟现在免费的图床也不好找. |
6
vcn8yjOogEL 2023-07-13 13:56:21 +08:00 via Android
|
7
ac169 OP @vcn8yjOogEL 谢谢, 我都参考参考.
imgur 这个以前也用 这两次用来都失败! 之后 我再试试 |
8
ac169 OP https://support.apple.com/en-us/HT210176
参考上面的内容 证书: 签名算法: X9.62 ECDSA 签名与 SHA-256 扩展秘钥用法 EKU: TLS WWW 客户端身份验证 (OID.1.3.6.1.5.5.7.3.2) / TLS WWW 服务器身份验证 (OID.1.3.6.1.5.5.7.3.1) 使用着备用名称: IP Address=10.21.9.2 上面这些都没有大问题, 唯一不符合的就是下面这段话 " TLS server certificates must have a validity period of 825 days or fewer (as expressed in the NotBefore and NotAfter fields of the certificate). " 我的证书签发为 1200 多天 |
9
ac169 OP @vcn8yjOogEL 问题找到了, 就是 #8 中说的 证书时间太长的问题. 谢谢
|