gpt4 book ai didi

ssl - 简单的 Akka ssl 加密

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:44 26 4
gpt4 key购买 nike

stackoverflow 上有几个关于 Akka、SSL 和证书管理的问题,以实现 Akka 参与者之间的安全(加密)对等通信。

关于远程处理的 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 似乎无关紧要。大多数服务器(例如在 Amazon Web Services 上运行的 EC2 实例)将在 VPC 中运行,并且初始的 Akka 远程服务器将是私有(private) IP 地址,例如

remote = "akka.tcp://sampleActorSystem@172.16.0.10:2553"

我的理解是,应该可以创建自签名证书并生成所有对等方共享的信任库。

随着更多 Akka 节点上线,它们应该(我假设)能够使用所有其他对等点使用的相同自签名证书和信任库。我还假设,即使您没有 CA,也无需信任所有具有不断增长的证书列表的对等方,因为信任库会验证该证书,并避免中间人攻击。

理想的解决方案和希望 - 是可以生成单个自签名证书,无需 CA 步骤,单个信任存储文件,并在 Akka Remote 的任意组合之间共享它/(客户端调用远程和远程,即所有同行)

必须有一个简单易行的过程来生成用于简单内部加密和客户端身份验证的证书(只需信任所有对等点)

问题:这些能否在每个对等节点上都是相同的文件,以确保它们与受信任的客户端通信并启用加密?

key-store = "/example/path/to/mykeystore.jks"
trust-store = "/example/path/to/mytruststore.jks"

问题:上面链接的 X.509 指令是否矫枉过正 - 是否有没有 CA 步骤的简单自签名/信任存储方法?专门针对内部 IP 地址(无 DNS)并且证书中的 IP 地址网络不会不断增加,因为服务器可以自动缩放。

最佳答案

首先,我必须承认我不了解Akka,但我可以为您提供SSL协议(protocol)中X509证书的识别指南。

akka server configuration需要绑定(bind)到主机名的 SSL 证书

You will need a server with a DNS hostname assigned, for hostname verification. In this example, we assume the hostname is example.com.

SSL 证书可以绑定(bind)到 DNS 名称或 IP(不常见)。为了客户端验证正确,必须对应服务器的IP/hostname

AKKA 要求每个服务器都有一个由公共(public) CA 颁发的证书

CA
- server1: server1.yourdomain.com (or IP1)
- server2: server2.yourdomain.com (or IP2)

为简化服务器部署,您可以使用通配符*.yourdomain.com

CA
- server1: *.yourdomain.com
- server2: *.yourdomain.com

在客户端,您需要在 JKS 中配置一个包含 CA 证书公钥的信任库。客户端将信任此 CA 颁发的任何证书。

在您描述的架构中,我认为您不需要 keystore 。当您还想用证书识别客户端时,就需要它。两种情况下都将建立SSL加密 channel 。

如果你没有像yourdomain.com这样的域名并且你想使用内部IP,我建议为每个服务器颁发一个证书并将其绑定(bind)到IP地址。

根据 akka 验证服务器证书的方式,可以为所有服务器使用唯一的自签名证书。 Akka 可能依赖于 JVM 默认值的信任配置。如果您在信任库(而不是 CA)中包含自签名证书,则 ssl 套接字工厂将信任提供此证书的连接,即使它已过期或服务器的主机名与证书不匹配。不推荐

关于ssl - 简单的 Akka ssl 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40967187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com