我在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__
我尝试连接证书和密钥但得到了相同的结果
如何导入密钥?
我试图找到.keystore
文件和.jks
文件之间的区别,但我找不到它.我知道jks
是"Java密钥库",两者都是存储键/值对的方法.
是否有任何差异或偏好使用一个而不是另一个?
我提供了一个名为ABCC_client.store的jks密钥库.当我将此密钥库导入cacerts并尝试连接时,说没有这样的算法错误.PFA堆栈跟踪
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at java.security.Provider$Service.newInstance(Provider.java:1245)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:220)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:147)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:125)
at javax.net.ssl.SSLContext.getDefault(SSLContext.java:68)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:102)
at org.apache.axis.components.net.JSSESocketFactory.initFactory(JSSESocketFactory.java:61)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:79)
... 32 more
Caused by: java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(KeyProtector.java:311)
at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:121)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:38)
at java.security.KeyStore.getKey(KeyStore.java:763)
at com.sun.net.ssl.internal.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:113)
at com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:48)
at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:239)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.getDefaultKeyManager(DefaultSSLContextImpl.java:170)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.<init>(DefaultSSLContextImpl.java:40)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at java.security.Provider$Service.newInstance(Provider.java:1221)
... 39 more
Run Code Online (Sandbox Code Playgroud)
但是,如果我独立使用这个密钥库,即不将它添加到cacerts,它就可以工作.
一些谷歌搜索引导我到http://joewlarson.com/blog/2009/03/25/java-ssl-use-the-same-password-for-keystore-and-key/这说明密码可能与我有所不同密钥和密钥库.
所以,我遇到了LDAP问题.我有一个集成测试用例,希望可以解决,但它目前遇到SSL握手的LDAPS安全问题.
我能够使用Apache Directory Studio连接到LDAPS,并且已将密钥库下载到文件"permanent.jks"中.
没关系,但我希望我的集成测试(使用JRE驻留在Eclipse中)能够使用此密钥库连接到LDAP服务器.
如何将此密钥库导入JRE以供自己使用?
我有一个持有单个证书的Java密钥库(.jks文件).如何从此密钥库创建.pfx文件?
我需要将.cer
文件转换为.jks
文件.我看到了一些关于它的问题,但没有看到我需要的解决方案.
我不需要它来将其添加到我的本地证书,但作为要上传到服务器的文件.我还需要只做一次,而不是以编程方式.有这个线程使用java将.cer转换为.jks并且作者说他已经成功完成了,但由于我没有足够的声誉,我无法评论他的上一个回复,我也不能向他发送个人信息并询问他.
所以,如果有人知道一个简单的方法,我会很高兴听到.
我试图使用此命令将标准PKCS#12(.p12)密钥库转换为Java JKS密钥库:
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore keystore.jks
失败的是:
keytool error: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
Run Code Online (Sandbox Code Playgroud)
你知道如何解决这个问题吗?
购买代码签名证书时,从PKCS12到JKS证书开始有什么优点?一些供应商提供有关从JKS或PKCS12证书签名请求开始的说明.我们希望在使用购买的证书时具有最大的灵活性,特别是考虑到成本.例如,我们可能签署的不仅仅是Java代码(例如:iPhone或Android代码签名).在选择任何一种方法时,我们应该考虑哪些技术因素?
我们的android项目包括 移动和磨损应用程序(穿戴应用程序正在开发中),我们正在尝试发布移动应用程序.当我们尝试生成签名的apk时,我们得到以下消息:
Error:Execution failed for task ':wear:packageRelease'.
> com.android.ide.common.signing.KeytoolException: Failed to read key
toyanathpatro from store "/home/adventure/toyanath_patro_key/toyanath_patro_key":
No key with alias 'toyanathpatro' found in keystore /home/adventure/toyanath_patro_key/toyanath_patro_key
Run Code Online (Sandbox Code Playgroud)
正如它所读到的那样说失败的任务:穿:packageRelease实际上我们在选择签署apk时只选择移动设备.
任何人都可以指出我的错误吗?提前致谢.