2013-08-20 130 views
4

我目前正在使用Akka遠程參與者進行客戶端/服務器應用程序的設置調查以進行通信。作爲該設置的一部分,我想啓用內置SSL模式,該模式通過netty支持。與Akka使用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] 
} 
} 

我是否需要添加的屬性或者只要它是在classpath中阿卡找到它呢?

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

在運行時,我得到很長的堆棧,但在開始的時候說:

[MySystem-akka.actor.default-調度-11] ERROR akka.remote.EndpointWriter - AssociationError [阿卡。 ssl.tcp://[email protected]:10693] - > [akka.ssl.tcp:// MyServerSystem @ localhost:2562]:錯誤[[akka.ssl.tcp:// MyServerSystem @ localhost: 2562] [ akka.remote.EndpointAssociationException:協會失敗[akka.ssl.tcp:// MyServerSystem @本地:2562]

產生的原因:akka.remote.transport.netty.NettyTransport $$ anonfun $一個ssociate $ 1 $$ anon $ 2:無法初始化管道。

引起:akka.remote.RemoteTransportException:無法建立客戶端SSL連接,因爲無法構建SSL上下文。

幫助將非常感激。 尊敬Stefan

回答

3

好的,我已經進一步研究了這個問題。

該問題與random-number-generator =「AES128CounterSecureRNG」屬性有關。 相反,我選擇使用默認實現。

我想我會需要添加提供程序,如果我想要使用此實現。

對於那些看起來感謝您的時間。