【发布时间】:2013-08-20 07:14:39
【问题描述】:
我目前正在研究使用 Akka 远程参与者进行通信的客户端/服务器应用程序的设置。作为该设置的一部分,我想启用通过 netty 支持的内置 ssl 模式。
但我并不完全确定如何准确设置参数,尽管我尝试了许多不同的组合。
我使用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] 错误 akka.remote.EndpointWriter - AssociationError [akka.ssl.tcp://MySystem@10.195.20.11:10693] -> [akka.ssl.tcp: //MyServerSystem@localhost:2562]: 错误 [Association failed with [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 上下文。
非常感谢您的帮助。 问候斯特凡
【问题讨论】: