【发布时间】:2023-02-11 00:37:33
【问题描述】:
我已经生成了 OpenSSL 自签名证书:
根 CA:cacert.crt(根 CA 证书)和 root_key.pem(用于 根私钥)。
客户端:client_cert.crt(客户端证书)和 client_key.pem(私钥)。
服务器:server_cert.crt(服务器证书)和 server_key.pem(私钥)。
客户端和服务器证书都使用根密钥签名。
据我了解,对于两种方式的 SSL,服务器信任库应包含客户端证书,客户端信任库应包含服务器证书。
我的问题是如何使用 keytool 生成从这些证书/密钥开始的两对客户端/服务器信任库/密钥库
【问题讨论】:
-
这不是编程或开发,但对于 CA 颁发的证书,每一方的信任库应包含根 CA 证书,而不是对等方的证书;只有自签名证书才需要对等证书在信任库中。然而每一方的密钥库应该包含自己的私钥和证书以及 CA 证书(又名链).你不能用 keytool 做到这一点,你必须使用 OpenSSL 或类似 keystore-explorer 的东西;关于每一个都有很多答案——尽管只有一些被更新以反映新 OpenSSL 和旧 Java 的问题,请参阅(我的)stackoverflow.com/questions/72412346。
-
这不是编程问题,但它直接链接到编程/测试,如果您编写处理 SSL 的代码,您将需要对其进行测试。
标签: java ssl ssl-certificate keytool