如何加密(使用SSL)Akka Remoting消息?

时间:2015-02-20 10:37:51

标签: ssl akka akka-remote-actor

我分叉了这个简单的服务器客户端akka项目: https://github.com/roclas/akka-irc 这是一个类似IRC的聊天,我试图对消息进行编码。

在我的主分支中,如果我启动服务器(sbt运行然后选择选项2)然后启动客户端(sbt运行然后选择选项1), 如果我在客户端写东西,消息就会被正确发送到服务器。

如果我启动wireshark并听取符合这些条件的消息: tcp.port == 1099和tcp.len> 200

我可以用纯文本阅读邮件。

我如何使用SSL对它们进行编码? 您可以通过修改develop分支中的src / main / resources / application.conf文件来查看我要执行的操作 我需要修改什么? 我的src / main / resources / application.conf文件应该怎么样?

谢谢

2 个答案:

答案 0 :(得分:11)

您应该使用以下命令在自定义.conf文件中启用SSL。

akka {
  actor {
    provider = "akka.remote.RemoteActorRefProvider"
  }
  remote {
    enabled-transports = ["akka.remote.netty.ssl"]
    netty.ssl{
      enable-ssl = true
      security {
        key-store = "path-to-your-keystore"
        key-store-password = "your-keystore's-password"
        key-password = "your-key's-password"
        trust-store = "path-to-your-truststore"
        trust-store-password = "your-trust-store's-password"
        protocol = "TLSv1"
        random-number-generator = "AES128CounterSecureRNG"
        enabled-algorithms = ["TLS_RSA_WITH_AES_128_CBC_SHA"]
      }
    }
  }
}

并且不要忘记将演员路径的前缀改为:

akka.ssl.tcp://YourActorSystemName@ip:port:/...

答案 1 :(得分:1)

除了J.Santos所说的,我忘了创建这两个文件:

trust-store = "path-to-your-truststore"
trust-store-password = "your-trust-store's-password"

我改变了:

key-store = "src/main/resources/keystore"
trust-store = "src/main/resources/truststore"

./src/main/resources/common.conf

中 J.Santos在看了我的项目后提醒了我。

非常感谢!!