相关疑难解决方法(0)

Java密钥库是否可以导入OpenSSL生成的密钥对?

我用openssl生成一个认证密钥.这是我的命令:

openssl genrsa -des3 -out enc_key.pem 1024

我导出到cer文件,然后用java keytool我导入到java密钥库(jks).

密钥库听起来不错.我可以从我的Java应用程序加载密钥库.

问题是当客户端连接到服务器时(在这种情况下是FTP服务器,而不是Web服务器,我使用apache mina),发生异常:

javax.net.ssl.SSLHandshakeException:SSL握手失败.org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:433)位于org.apache.mina.core的org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) .filterchain.DefaultIoFilterChain.access $ 5(DefaultIoFilterChain.java:429)

...

引起:javax.net.ssl.SSLHandshakeException:com.sun.net.ssl.ssl.ssl.inl上的com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(未知来源)没有共同的密码套件.SLEngineImpl来自com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(未知来源)的.checkTaskThrown(未知来源)位于javax.net的com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(未知来源) .ssl.SSLEngine.wrap(未知来源)

...

引起:javax.net.ssl.SSLHandshakeException:在com.sun.net.ssl.inl.ssl.SSLEngineImpl的com.sun.net.ssl.internal.ssl.Alerts.getSSLException(未知来源)中没有共同的密码套件.fatal(未知来源)

我想问一些事情:

  1. 我使用openssl生成的认证密码是什么?我们怎么知道?也许通过命令行openssl xxx?
  2. 我去http://java.sun.com/j2se/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#AppA.我把SSL_RSA_xxx放到启用的密码套件中,但仍然无法工作(我把SSL_RSA放在SSL使用ssl implisit,而genrsa,只是我的意见genrsa生成RSA).这是对的吗?
  3. 有人知道解决方案吗?
  4. 或者,任何人都知道如何从openssl命令行生成标准密钥库,直到可以在java应用程序中使用(当然使用密码).因为我现在可以从openssl和export keystore java生成认证,但我不知道我使用的密码是什么以及我在java应用程序中的使用方式.注意:如果密钥库直接从java生成,我可以运行.现在问题是如果java keytool生成的密钥库来自认证,比如openssl(和其他可能).

任何帮助将不胜感激!谢谢

java openssl keystore

21
推荐指数
1
解决办法
5万
查看次数

标签 统计

java ×1

keystore ×1

openssl ×1