2015-02-20 2 views
4

Я разработал этот простой проект-сервер-клиент akka: https://github.com/roclas/akka-irc , который является чатом IRC-типа, и я пытаюсь кодировать сообщения.Как я могу шифровать (используя SSL) сообщения Akka Remoting?

В моей главной ветке, если я запустил сервер (запустите sbt, а затем выберите вариант 2), а затем клиент (запустите sbt, а затем выберите вариант 1), , если я что-то напишу на клиенте, сообщение правильно отправляется на сервер.

Если я начинаю Wireshark и прослушать сообщения, которые отвечают этим условиям: tcp.port == 1099 и tcp.len> 200

Я могу читать сообщения в текстовом формате.

Как я могу кодировать их с помощью SSL? Вы можете увидеть, что я пытаюсь сделать, изменив файл src/main/resources/application.conf в ветке разработки. Что мне нужно изменить? Как должен выглядеть файл src/main/resources/application.conf?

Спасибо

ответ

8

Вы должны включить SSL на YOUT пользовательских .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"] 
     } 
    } 
    } 
} 

И не забудьте изменить preffix своего актера-путь к:

akka.ssl.tcp://[email protected]:port:/... 
+0

Спасибо, это было именно то, что я искал – Carlos

+0

Взгляните на эти изменения: https://github.com/roclas/akka-irc/tree/feat/ssl/src/main/resources (эти четыре файлы - все, что нам нужно было изменить) – Carlos

1

В дополнение на что сказал Дж. Сантос, я забыл создать эти два файла:

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 после просмотра моего проекта.

спасибо!