【发布时间】:2017-07-12 21:46:02
【问题描述】:
我们有 JAVA 服务器和客户端使用 SSL 通过网络进行通信。服务器和客户端使用证书相互验证。服务器和客户端使用的密钥库类型是 JKS。服务器和客户端的密钥库和信任库文件名是:server.keystore、server.truststore、client.keystore 和 client.truststore。
我使用自签名证书仅用于测试。
问题:
第一季度。我想知道为什么我需要在第 6 步中将服务器和客户端自己的证书添加到各自的信任库中。
第二季度。我可以减少步骤数来实现相同的目标吗?如果是,那么如何?
为服务器创建 RSA 密钥、自签名证书、密钥库和信任库的步骤
1.生成 RSA 私钥
openssl genrsa -out diagserverCA.key 2048
2。创建 x509 证书
openssl req -x509 -new -nodes -key diagserverCA.key -sha256 -days 1024 -out diagserverCA.pem
3.从私钥和公共证书创建 PKCS12 密钥库。
openssl pkcs12 -export -name server-cert -in diagserverCA.pem -inkey diagserverCA.key -out serverkeystore.p12
4.将 PKCS12 密钥库转换为 JKS 密钥库
keytool -importkeystore -destkeystore server.keystore -srckeystore serverkeystore.p12 -srcstoretype pkcs12 -alias server-cert
5.将客户端的证书导入服务器的信任库。
keytool -import -alias client-cert -file diagclientCA.pem -keystore server.truststore
6.将服务器的证书导入服务器的信任库。
keytool -import -alias server-cert -file diagserverCA.pem -keystore server.truststore
为客户端创建 RSA 私钥、自签名证书、密钥库和信任库的步骤
1.生成私钥
openssl genrsa -out diagclientCA.key 2048
2。创建 x509 证书
openssl req -x509 -new -nodes -key diagclientCA.key -sha256 -days 1024 -out diagclientCA.pem
3.从私钥和公共证书创建 PKCS12 密钥库。
openssl pkcs12 -export -name client-cert -in diagclientCA.pem -inkey diagclientCA.key -out clientkeystore.p12
4.将 PKCS12 密钥库转换为 JKS 密钥库
keytool -importkeystore -destkeystore client.keystore -srckeystore clientkeystore.p12 -srcstoretype pkcs12 -alias client-cert
5.将服务器的证书导入客户端的信任库。
keytool -import -alias server-cert -file diagserverCA.pem -keystore client.truststore
6.将客户的证书导入客户的信任库。
keytool -import -alias client-cert -file diagclientCA.pem -keystore client.truststore
【问题讨论】:
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?
标签: java ssl openssl keystore keytool