当前位置: 首页 > 面试题库 >

如何导入Java密钥库中的现有X.509证书和私钥以在SSL中使用?

隆芷阳
2023-03-14
问题内容

我在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连接器中使用它们?我可以用google搜索的所有示例始终都会自己生成密钥,但是我已经有了密钥。

我试过了

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

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

2019-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.

我已经尝试连接证书和密钥,但是得到了相同的结果。

如何导入密钥?


问题答案:

我使用了以下两个步骤,这些步骤是在其他答案中链接的评论/帖子中找到的:

第一步: 将x.509证书和密钥转换为pkcs12文件

openssl pkcs12 -export -in server.crt -inkey server.key \
               -out server.p12 -name [some-alias] \
               -CAfile ca.crt -caname root

注意:请确保在pkcs12文件上输入了密码-否则,当你尝试导入它时,将得到一个空指针异常。(以防其他任何人头痛)。(感谢jocull!)

注意2:你可能想添加-chain选项以保留完整的证书链。(感谢Mafuba)

第二步:将pkcs12文件转换为Java密钥库

keytool -importkeystore \
        -deststorepass [changeit] -destkeypass [changeit] -destkeystore server.keystore \
        -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass some-password \
        -alias [some-alias]

已完成

可选步骤零:创建自签名证书

openssl genrsa -out server.key 2048
openssl req -new -out server.csr -key server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


 类似资料:
  • 2)生成CA证书请求 3)生成自签有效期-10年 4)使用KeyStoreExplorer这样的程序将密钥对(私钥和自签名证书)导入到新的JKS中

  • 问题内容: 我的Java程序如何知道包含证书的密钥库在哪里?或者,如何告诉我的Java程序在哪里寻找密钥库? 在以某种方式指定了密钥库之后,如何指定用于对服务器进行身份验证的证书? 问题答案:

  • 问题内容: 在Java Web服务客户端的开发过程中,我遇到了一个问题。Web服务的身份验证使用客户端证书,用户名和密码。我从Web服务背后的公司那里收到的客户证书采用格式。当我使用文本编辑器检查文件时,它具有以下内容: 我可以在Internet Explorer中将该文件作为证书导入(无需输入密码!),并使用它通过Web服务进行身份验证。 通过首先剥离第一行和最后一行,转换为换行符并运行base

  • 我有一个由openssl以以下方式生成的密钥对 openssl genrsa-out private_key.pem 2048 所以我的问题是如何使用KeyTool将现有密钥导入到BKS密钥库中? 谢谢

  • 但是,这将错误地表示它无法加载证书。

  • 我是新来配置Jetty服务器的SSL。我按照digcert的步骤创建了私钥文件、证书请求CSR文件。 我向CA发送了证书请求,并拿回了我签名的CSR。但是CA给我发了一个有两个证书的捆绑包,一个是我的证书,由CA签名,第二个是CA证书。(1star_xyx_abc_comcrt文件,2.CRT文件)。现在我面临着从这些文件创建密钥库的麻烦。 当我按照Oracle文档的步骤4、5和6使用keytoo