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

Car*_*los 6 ssl akka akka-remote-actor

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

在我的主分支中,如果我启动服务器(sbt运行然后选择选项2)然后启动客户端(sbt运行然后选择选项1),如果我在客户端写入内容,则消息将正确发送到服务器.

如果我启动wireshark并收听满足这些条件的消息:tcp.port == 1099 and tcp.len> 200

我可以用纯文本阅读这些消息.

我怎么能用SSL编码呢?您可以通过修改develop分支中的src/main/resources/application.conf文件来查看我要执行的操作.我需要修改哪些内容?我的src/main/resources/application.conf文件应该怎么样?

谢谢

小智 11

您应该在自定义.conf文件中启用S​​SL :

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"]
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记将您的actor路径的前缀更改为:

akka.ssl.tcp://YourActorSystemName@ip:port:/...
Run Code Online (Sandbox Code Playgroud)