Как я могу зашифровать (используя SSL) сообщения Akka Remoting?
Я разработал этот простой проект сервера-клиента akka: https://github.com/roclas/akka-irc который является IRC-подобным чатом, и я пытаюсь кодировать сообщения.
В моей основной ветке, если я запускаю сервер (sbt run и затем выбираю опцию 2), а затем клиента (sbt run и затем выбираю опцию 1), если я что-то пишу в клиенте, сообщение корректно отправляется на сервер.
Если я запускаю wireshark и слушаю сообщения, которые удовлетворяют этим условиям: tcp.port==1099 и tcp.len>200
Я могу читать сообщения в виде простого текста.
Как я могу кодировать их с помощью SSL? Вы можете увидеть, что я пытаюсь сделать, изменив файл src / main / resources / application.conf в ветке разработки. Что мне нужно изменить? Как должен выглядеть мой файл src / main / resources / application.conf?
Спасибо
2 ответа
Вы должны включить SSL по своему усмотрению .conf
файл с:
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:/...
В дополнение к тому, что сказал Дж. Сантос, я забыл создать эти два файла:
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
как напомнил мне Сантос после просмотра моего проекта.
Большое спасибо!!