在stackoverflow上有关于Akka、SSL和证书管理的几个问题,以启用Akka actor之间的安全(加密)点对点通信。
Akka文档中关于远程通讯(http://doc.akka.io/docs/akka/current/scala/remoting.html)指向该资源作为如何生成X.509证书的示例。
随着更多的Akka节点上线,它们应该(我假设)能够使用通过所有其他对等方使用的同一自签名证书和信任存储区。我还认为,即使您没有CA,也没有必要信任所有对等方的不断增长的证书列表,因为信任存储区将验证该证书并避免中间人攻击。
理想的解决方案和希望是,可以生成一个单个的自签名证书,无需进行CA步骤,一个单独的信任存储文件,并在任何组合的Akka远程/(调用远程和远程的客户端,即所有对等方)之间共享它。
问题:上面链接的X.509指令是否过于复杂 - 是否存在简单的自签名/信任存储方法,无需执行CA步骤?特别是针对仅限内部IP地址(没有DNS)且不在证书中使用增加的IP地址网络,因为服务器可能会自动缩放。
Akka文档中关于远程通讯(http://doc.akka.io/docs/akka/current/scala/remoting.html)指向该资源作为如何生成X.509证书的示例。
http://typesafehub.github.io/ssl-config/CertificateGeneration.html#generating-a-server-ca
由于这些演员正在内部服务器上运行,因此为example.com
(或任何DNS名称)生成服务器CA似乎不相关。大多数服务器(例如在亚马逊网络服务上运行的EC2实例)将在VPC中运行,并且初始的Akka远程将是私有IP地址,如:
remote = "akka.tcp://sampleActorSystem@172.16.0.10:2553"
我的理解是,应该可以创建自签名证书并生成所有节点共享的信任存储区。随着更多的Akka节点上线,它们应该(我假设)能够使用通过所有其他对等方使用的同一自签名证书和信任存储区。我还认为,即使您没有CA,也没有必要信任所有对等方的不断增长的证书列表,因为信任存储区将验证该证书并避免中间人攻击。
理想的解决方案和希望是,可以生成一个单个的自签名证书,无需进行CA步骤,一个单独的信任存储文件,并在任何组合的Akka远程/(调用远程和远程的客户端,即所有对等方)之间共享它。
必须有一个简单易懂的过程来生成证书,以进行简单的内部加密和客户端身份验证(只信任所有同行者)
问题:这些文件可以在每个同行者上都相同吗?这将确保它们正在与可信客户端通信并启用加密吗?
key-store = "/example/path/to/mykeystore.jks"
trust-store = "/example/path/to/mytruststore.jks"
问题:上面链接的X.509指令是否过于复杂 - 是否存在简单的自签名/信任存储方法,无需执行CA步骤?特别是针对仅限内部IP地址(没有DNS)且不在证书中使用增加的IP地址网络,因为服务器可能会自动缩放。