我在activemq配置中有这个
<sslContext>
<sslContext keyStore="file:/home/alex/work/amq/broker.ks"
keyStorePassword="password" trustStore="file:${activemq.base}/conf/broker.ts"
trustStorePassword="password"/>
</sslContext>
Run Code Online (Sandbox Code Playgroud)
我有一对x509证书和一个密钥文件
如何导入这两个用于ssl和ssl + stomp连接器?我可以谷歌的所有例子总是自己生成密钥,但我已经有了密钥.
我试过了
keytool -import -keystore ./broker.ks -file mycert.crt
Run Code Online (Sandbox Code Playgroud)
但这只导入证书而不是密钥文件并导致结果
__CODE__
我尝试连接证书和密钥但得到了相同的结果
如何导入密钥?
我使用以下步骤创建一个新的Java密钥库,其中包含一对私有/公共密钥,供Java(内部)服务器使用TLS.请注意证书是自签名的:
1)使用AES256生成密钥
openssl genrsa -aes256 -out server.key 1024
Run Code Online (Sandbox Code Playgroud)
2)为CA生成证书请求
openssl req -x509 -sha256 -new -key server.key -out server.csr
Run Code Online (Sandbox Code Playgroud)
3)生成自签名到期时间10年
openssl x509 -sha256 -days 3652 -in server.csr -signkey server.key -out selfsigned.crt
Run Code Online (Sandbox Code Playgroud)
4)使用像KeyStoreExplorer这样的程序在新的JKS中导入对(私钥和自签名证书)
这有效,但我想在不使用GUI的情况下实现最后一步.
我知道如何仅导入自签名证书:
// create the keystore and import the public key. THIS WILL NOT IMPORT THE PRIVATE KEY SO THE KEYSTORE CAN'T BE USED ON THE SERVER TO MAKE THE TLS CONNECTION
/usr/java/jdk1.6.0_45/bin/keytool -import -alias myservercert -file server.crt -keystore mykeystore.jks
Run Code Online (Sandbox Code Playgroud)
所以问题是:我如何创建Java KeyStore并使用公钥和私钥导入证书而不使用GUI?
我试图将证书和密钥文件导入密钥库,但我无法做到这一点.
如何通过导入现有证书(abc.crt)和abc.key文件来创建密钥库?
我必须将pem格式的证书转换为java密钥库.
在Windows服务器上使用这个tomcat
我有这些文件:
cert_request.csr
-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)cert_public_key.pem
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)cert_private_key.pem
-----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)cert.txt
contains an 16 digit key
Run Code Online (Sandbox Code Playgroud)我试图结合pem文件(通过将两个文件组合在一起链接在一起)并将其与openssl转换成一个
我也试着改变了
-----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
成
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
并尝试了以上3种方式
我有什么办法可以获得工作证书?
编辑:
我将cert_public_key.pem和cert_private_key.pem组合到cert_comb.pem
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud) 我正在使用 Java7 和 JAX-WS 2.2。
对于 SOAP Web 服务,我需要创建一个自定义X509KeyManager,以便为 JKS 密钥库中的每个连接客户端找到正确的证书。
但是,我已经在努力让我的自定义密钥管理器运行。到目前为止,我使用的是默认的(从初始化的 中检索KeyManagerFactory)并且它基本上可以工作 - 但当然它没有选择正确的证书。所以第一个想法是创建一个自定义X509KeyManager来保存原始密钥管理器,只写出一些日志消息,但通常使用默认行为。
出于某种原因,这根本不起作用。无法建立 SSL 握手。在ClientHello 之后,日志显示以下错误:
Allow unsafe renegotiation: false
Allow legacy hello messages: true
Is initial handshake: true
Is secure renegotiation: false
Thread-3, READ: TLSv1 Handshake, length = 149
*** ClientHello, TLSv1
RandomCookie: GMT: 1476877930 bytes = { 207, 226, 8, 128, 40, 207, 47, 180, 146, 211, 157, 64, 239, 13, 201, 92, 158, 111, 108, 44, …Run Code Online (Sandbox Code Playgroud)