我在ActiveMQ配置中有这个:

<sslContext>
        <sslContext keyStore="file:/home/alex/work/amq/broker.ks"  
 keyStorePassword="password" trustStore="file:${activemq.base}/conf/broker.ts" 
 trustStorePassword="password"/>
</sslContext>

我有一对X.509证书和一个密钥文件.

如何导入这两个,以便在SSL和SSL+stomp连接器中使用它们?所有的例子我都可以谷歌自己生成密钥,但我已经有了一个密钥.

我试过了

keytool -import  -keystore ./broker.ks -file mycert.crt

但这只导入证书,而不导入密钥文件,并导致

2009-05-25 13:16:24,270 [localhost:61612] ERROR TransportConnector - Could not accept connection : No available certificate or key corresponds to the SSL cipher suites which are enabled.

我试过了 concatenating the cert and the key but got the same result.

如何导入密钥?

推荐答案

信不信由你,keytool不提供像将私钥导入密钥库这样的基本功能.您可以try 将PKSC12文件与私钥合并到密钥库:

keytool -importkeystore \
  -deststorepass storepassword \
  -destkeypass keypassword \
  -destkeystore my-keystore.jks \
  -srckeystore cert-and-key.p12 \
  -srcstoretype PKCS12 \
  -srcstorepass p12password \
  -alias 1

或者使用IBM提供的更为用户友好的KeyMan来处理密钥库,而不是使用keytool.

Java相关问答推荐

一般类型和kotlin阴影Java函数的问题

为什么如果数组列表中有重复项,我的代码SOMETIMES不返回true?

最小拓Flutter 排序的时间复杂度是多少?

如何粘合(合并)文件Lucene?

如果一个子类没有构造函数,超类也没有构造函数,那么为什么我可以构造子类的实例呢?

使用java访问具体子类特定方法的最佳方法是什么?

使用动态ID从json获取详细信息的Jolt规范

为什么不应用类型推断?

查找剩余的枚举

暂停计时器

Spring @Value default无法计算表达式

自定义批注的外推属性值

MySQL数据库中未应用具有Spring数据的唯一约束

如何在Spring Boot中创建可以将值传递给配置的&Enable&Quot;注释?

Android Studio模拟器没有互联网

对从Spring Boot 3.1.5升级到3.2.0的方法的查询验证失败

使用for循环时出现堆栈溢出错误,但如果使用if块执行相同的操作,则不会产生错误

在缺少字段时使用Jackson With Options生成Optional.Empty()

如何在Java中的重写方法参数中强制(Enum)接口实现?

java.lang.ClassCastException:com.google.firebase.FirebaseException无法转换为com.google.fire base.auth.FirebaseAuthException