使用与Akka的SSL连接 - 无法使配置生效

时间:2013-08-20 07:14:39

标签: java ssl akka keystore

我目前正在研究使用Akka远程演员进行通信的客户端/服务器应用程序的设置。作为该设置的一部分,我想启用内置的ssl模式,这是通过netty支持的。

然而,我并不完全确定如何准确设置参数,即使我已经尝试了许多不同的组合。

我使用http://doc.akka.io/docs/akka/2.2.0/java/remoting.html作为不同参数的参考。

关于创建密钥库和信任库,我使用了此链接中的指南: http://www.ibm.com/developerworks/library/j-customssl/sidebar.html

我的配置的相关部分在客户端上显示如下:

remote {
enabled-transports = ["akka.remote.netty.ssl"]
netty.ssl {
  host = "" 
  port = 0
  enable-ssl = true
}
netty.ssl.security {
  key-store = "ServiceTesterClientKeys"
  trust-store = "clientTrust"
  key-store-password = "XX"
  key-password = "XX"
  trust-store-password = "YY"
  protocol = "TLSv1"
  random-number-generator = "AES128CounterSecureRNG"
  enabled-algorithms = [TLS_RSA_WITH_AES_128_CBC_SHA]
}
}

并在服务器上这样:

remote {

enabled-transports = ["akka.remote.netty.ssl"]
netty.ssl {
  hostname = ""
  port = 2562
  enable-ssl = true
}
netty.ssl.security {
  key-store = "serverKeys"
  trust-store = "serverTrust"
  key-store-password = "YY"
  key-password = "YY"
  trust-store-password = "XX"
  protocol = "TLSv1"
  random-number-generator = "AES128CounterSecureRNG"
  enabled-algorithms = [TLS_RSA_WITH_AES_128_CBC_SHA]
 }
 }

我是否需要添加属性,或者只要Akka在类路径上就可以找到它?

-Djavax.net.ssl.keyStore=A
-Djavax.net.ssl.trustStore=B

在运行时我得到一个很长的堆栈,但在开始时它说:

[MySystem-akka.actor.default-dispatcher-11] ERROR akka.remote.EndpointWriter - AssociationError [akka.ssl.tcp://MySystem@10.195.20.11:10693] - > [akka.ssl.tcp:// MyServerSystem @ localhost:2562]:错误[关联失败[akka.ssl.tcp:// MyServerSystem @ localhost:2562]] [ akka.remote.EndpointAssociationException:关联失败[akka.ssl.tcp:// MyServerSystem @ localhost:2562]

引起:akka.remote.transport.netty.NettyTransport $$ anonfun $ associate $ 1 $$ anon $ 2:无法初始化管道。

引起:akka.remote.RemoteTransportException:无法建立客户端SSL连接,因为无法构造SSL上下文。

非常感谢帮助。 关心Stefan

1 个答案:

答案 0 :(得分:3)

好的,我已经进一步研究了这个问题。

问题与random-number-generator =“AES128CounterSecureRNG”属性有关。 相反,我选择使用默认实现。

如果我想使用此实现,我想我需要添加提供程序。

对于那些感谢您的时间的人。