使用 C# 和 AWS 证书保护 WebSocket 服务器

Posted

技术标签:

【中文标题】使用 C# 和 AWS 证书保护 WebSocket 服务器【英文标题】:Secure WebSocket Server with C# and AWS Certificates 【发布时间】:2018-06-04 19:51:14 【问题描述】:

我正在尝试用 C# 编写一个安全的 websocket (WSS) 服务器。我从使用 TcpClient 对象的不安全套接字开始,但假设我需要将 SslStream 用于安全版本。我知道我需要使用 AuthenticateAsServer() 来添加证书,使用虚拟证书文件非常简单。

但是,我正在开发的 Web 应用程序使用来自 AWS 的 HTTPS 证书,理想情况下,我也想将它用于服务器,但我不知道如何从 AWS 获取证书到由 SslStream 使用(甚至初始化为 X509Certificate 对象)。

甚至可以以这种方式使用 AWS 证书吗?如果是这样,怎么做?

【问题讨论】:

吉姆的回答是正确的。但是,您可以在手动模式 (certbot) 下使用 Let's Encrypt 并创建自己的证书。当我不使用 AWS 服务和证书时,我总是这样做。在这里寻找我的答案:***.com/questions/50766990/… 【参考方案1】:

不,我不认为这是可能的,因为来自 AWS Certificate Manager 的免费证书似乎是严格控制的:

使用 AWS Certificate Manager,您可以快速申请证书, 将其部署在 ACM 集成的 AWS 资源上,例如 Elastic Load 平衡器、Amazon CloudFront 分配和 API Gateway 上的 API, 并让 AWS Certificate Manager 处理证书续订

据我了解,AWS 可以为您创建证书并管理它们,但前提是它们插入到它们运行的​​附加服务(负载均衡器、网关等外部服务)中。您不能在自己的代码中使用它们。

【讨论】:

害怕是这样。好吧,至少现在我已经关闭并且可以继续前进了,谢谢!

以上是关于使用 C# 和 AWS 证书保护 WebSocket 服务器的主要内容,如果未能解决你的问题,请参考以下文章

AWS ELB -> 带有自签名证书的 HTTPS 后端服务器

如何 Terraform 创建和验证 AWS 证书

Terraform 和 AWS:ACM 证书从未经过验证

如何使用 AWS 身份验证保护我的 wcf 服务

使用 AWS Cognito 保护 REST API

如何在 AWS EC2 和 ELB 上使用 Godaddy 注册的域实现 SSL 证书