6

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

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

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

我可以阅读纯文本的消息。

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

谢谢

4

2 回答 2

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:/...
于 2015-02-20T12:43:47.490 回答
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 在查看我的项目后提醒我的那样。

非常感谢!!

于 2015-02-20T13:06:49.287 回答