java读取openssl生成的秘钥,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 handshake failed.

at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:433)

at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)

at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$5(DefaultIoFilterChain.java:429)

Caused by: javax.net.ssl.SSLHandshakeException: no cipher suites in common

at com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.checkTaskThrown(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(Unknown Source)

at javax.net.ssl.SSLEngine.wrap(Unknown Source)

Caused by: javax.net.ssl.SSLHandshakeException: no cipher suites in common

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(Unknown Source)

有几件事我想问:

>我用openssl生成的认证密码是什么?我们怎么知道?也许通过命令行openssl xxx?

>我去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)。这是对的吗?

>有谁知道解决方案?

>或者,任何人都知道如何从openssl命令行生成标准密钥库,直到可以在java应用程序中使用(与密码相关)。因为现在我可以从openssl和export keystore java生成认证,但是我不知道我使用的密码是什么,以及我在java应用程序中的使用。注意:如果密钥库直接从java生成,我可以运行。现在问题是如果由keykey生成的密钥库从认证就像openssl(和其他可能的)。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值