[英]Creating a truststore in java
一个供应商给了我一个.jks以通过jms连接到他们的mq。 我使用以下代码作为模板来证明我的概念。
使用SSL / Keystore连接到Java中的Websphere MQ
密钥库的创建很好,但是当它尝试创建信任库时,它将加载新的.jks文件。 我应该生成该文件还是应该提供该文件,因为目前无法创建该文件。
// instantiate a KeyStore with type JKS
KeyStore ks = KeyStore.getInstance("JKS");
// load the contents of the KeyStore
ks.load(new FileInputStream("/home/hudo/hugo.jks"), KSPW);
System.out.println("Number of keys on JKS: "
+ Integer.toString(ks.size()));
// Create a keystore object for the truststore
KeyStore trustStore = KeyStore.getInstance("JKS");
// Open our file and read the truststore (no password)
trustStore.load(new FileInputStream("/home/xwgztu2/xwgztu2.jks"), null);
谢谢
这个答案有很多假设(因为这个问题不能提供很多信息),但是我也认为它伴随着大量的经验。
要创建SSL连接,服务器必须具有密钥对(私钥,公钥以及与公钥有关的证书),并且客户端必须信任证书(或其颁发者)。 双向SSL(也称为客户端身份验证ssl)也有一个选项,其中客户端需要自己的密钥对和证书,而服务器需要信任客户端的证书。
Truststore会加载一个新的.jks文件。 我应该生成该文件还是应该提供该文件,因为目前无法创建该文件。
信任库应有效地包含服务器证书的颁发者证书(如果使用了自签名证书,则是同一证书)。
您可以通过连接到服务获得证书
openssl s_client -connect host:port -showcerts
然后将返回的证书导入到新的密钥库中(使用例如keytool -importcert
命令)
keytool -importcert -keystore mytruststore.jks -alias mqserver -file servercert.pem
如果服务器向您返回多个证书(证书链),则可以将它们全部导入。
如果您不能这样做,只需要求服务提供商(部署MQ的人)为您提供证书或信任库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.