繁体   English   中英

在Java中创建信任库

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM