2016-05-03 39 views
0

我正在尝试使用keytool为ssl连接生成Apache QPid的自签名证书。为apache创建密钥库和信任库QPID

因此,我第一次为服务器和客户端创建密钥库和证书。 我做了很多次,最后一个来自这个网站: http://ruchirawageesha.blogspot.fr/2010/07/how-to-create-clientserver-keystores.html

所以现在我有1个密钥库服务器和1客户端与服务器端和客户端两种密钥库条目。

在那之后,我试图创建服务器和客户端信任库使用:

的keytool -import -alias -trustcacerts服务器-file server.cert -keystore clienttruststore -storepass

(我想这最后的命令和我一起在互联网上找到的--trustcacerts)。 我使用相同的命令创建第二个信任库使用客户端而不是服务器和服务器而不是客户端

我在Qpid中为服务器添加了keystore和truststoregenerated。

我在我的应用程序中使用了其他人。

但是,当我的应用程序尝试连接到QPid(在connectionFactory.createConnection())上时,我有一个异常: javax.net.ssl.SSLHandshakeException:常规SSLEngine问题。

QPid用于创建另一个应用程序的模拟器。 客户端应用程序可以使用服务器提供的证书创建与“真实”服务器的连接

当客户端应用程序与真实服务器一起使用时,连接有效,所以我认为问题来自证书的创建,密钥库或信任库或QPid配置。

我在互联网上寻找这个例外,但我只发现人说证书可能不可用。

如果我通过amqp:// localhost来替换url:amqps:// localhost我可以连接到代理,但是我有一个错误:当我使用连接时,传输连接远程关闭(如果我这样做:连接.getClientID())

那么你知道我做错了什么吗?

回答

0

经过大量试验后,我发现问题是证书中的CN(证书名称?)。

我有一个更详细的例外是 没有使用替代名称。

我发现问题是CN不对应于URL连接。 我也发现我应该使用本地主机的CN(我的qpid和现在的客户端在同一台计算机上)。 但我仍然有与localhost相同的问题。 我也尝试使用我的IP地址,并得到相同的结果。

我认为问题是,网址是amqps:// localhost:XXXX而不是https:// ....就像我在论坛上看到的一样。

但我找不到我应该用它来使它工作。

有人能帮我找到CN应该是什么吗?

相关问题