我的 Java 程序如何知道包含证书的密钥库在哪里?
或者:我如何告诉我的 Java 程序在哪里查找密钥库?
以某种方式指定密钥库后,如何指定用于向客户端验证服务器的证书?
SSL 属性是通过系统属性在 JVM 级别设置的。这意味着您可以在运行程序时设置它们(java -D....),也可以通过执行 System.setProperty 在代码中设置它们。
您需要设置的具体按键如下:
javax.net.ssl.keyStore- 地点
Java 密钥库文件包含
应用进程自己的证书
和私钥。在 Windows 上,
指定的路径名必须使用forward
斜杠 / 代替反斜杠。
javax.net.ssl.keyStorePassword- 密码
访问私钥
指定的密钥库文件
javax.net.ssl.keyStore。这个密码
使用两次:解锁密钥库
文件(存储密码),并解密
存储在密钥库中的私钥
(密钥密码)。
javax.net.ssl.trustStore- 地点
Java 密钥库文件包含
受信任的 CA 证书集合
通过此申请流程(信任
店铺)。在 Windows 上,指定
路径名必须使用正斜杠,/
,
代替反斜杠,\
.
如果信任存储位置不是
使用此属性指定,
SunJSSE 实现搜索
并使用密钥库文件
以下地点(按顺序):
$JAVA_HOME/lib/security/jssecacerts
$JAVA_HOME/lib/security/cacerts
javax.net.ssl.trustStorePassword-
用于解锁密钥库文件的密码
(存储密码)由指定javax.net.ssl.trustStore
.
javax.net.ssl.trustStoreType- (选修的)
对于 Java 密钥库文件格式,此
属性的值为 jks(或 JKS)。
您通常不指定这个
属性,因为它的默认值为
已经jks了。
javax.net.debug- 换成
在 SSL/TLS 层的日志记录中,设置
此属性为 ssl。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)