如何使用self创建密钥库和信任库
我们有JAVA服务器和客户端通过使用SSL的网络进行通信。 服务器和客户端使用证书相互验证身份。 服务器和客户端使用的密钥库类型是JKS。 服务器和客户端的密钥库和信任库文件名是:server.keystore,server.truststore,client.keystore和client.truststore。
我正在使用自签名证书进行测试。
问题:
Q1。 我想知道为什么我需要在第6步中将服务器和客户端自己的证书添加到其各自的信任库中。
Q2。 我可以减少数字步骤以达到同样的效果吗? 如果是,那么如何?
为服务器创建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
Q1。 我想知道为什么我需要在第6步中将服务器和客户端自己的证书添加到其各自的信任库中。
你没有。
Q2。 我可以减少数字步骤以达到同样的效果吗? 如果是,那么如何?
你可以用keytool
来完成整个事情。 大量记录的例子。 你根本不需要使用openssl
。
批判:
您将在JDK文档的“JSSE参考指南”中找到正确的说明。 每个约三步。 但是真正需要证明的是,自签名证书确实不值得他们所印刷的纸张。 获取CA签名的证书。 更多的价值和更容易部署(无导出步骤)。
你从哪里得到这种垃圾?
Q1。 我想知道为什么我需要在第6步中将服务器和客户端自己的证书添加到其各自的信任库中。
A1。 如果您没有使用通用证书颁发机构签署您的客户端和服务器证书......将其添加到信任库是唯一的方法。 但是,即使在测试环境中,您也可以创建自己的证书颁发机构并使用它来签署您创建的客户机和服务器证书。 那么您的信任商店只需要包含您的证书颁发机构的公钥。
Q2。 我可以减少数字步骤以达到同样的效果吗? 如果是,那么如何?
A2。 是的,使用通用证书签署您的客户端和服务器证书。
查看本文中的脚本,了解如何创建自己的CA并使用它来签署服务器和客户端证书。 它也创建您的信任商店...
希望这可以帮助。
Best,Ace
链接地址: http://www.djcxy.com/p/21839.html