编辑:

编辑:

我陷入了一个安全问题。

我使用 amazon Route53 注册了我的域名,但实际的服务器根本不托管在 Amazon。而是由第三方托管,并且此实例上仅开放了 2 个端口:端口 22(用于 SSH)和端口 1337(用于 websockets)。

该应用程序运行良好,但我现在需要为该服务器启用 HTTPS。

过去,我使用 AWS 负载均衡器在特定的 EC2 实例上将 HTTPS 转发到 HTTP,效果很好,而无需实际为特定实例创建证书。

不幸的是,我现在无法使用这种方法,因为服务器托管在其他地方,并且负载均衡器仅适用于 AWS 实例。

相比之下,我确实配置了一条记录来将主机名重定向到服务器的 IP 地址,效果很好。

我决定自己制作证书。但是,我的自签名证书似乎默认被 chrome 阻止。因此,我尝试使用 CA。我尝试使用 LetsEncrypt,但没有成功。问题是,LetsEncrypt 想要在安装过程中验证主机名,而且它似乎只能在端口 80 上执行此操作,而我无法使用这个端口。

有任何想法吗 ?

答案1

我读到 LetsEncrypt 希望我创建一条TXT记录。我太愚蠢了,竟然以为他们希望我在公共文件夹的根目录中创建一个 TXT 文件。这真的要感谢 Michael Hampton,他用两个简单的词给我指明了正确的方向:“DNS 验证”

图片

结果:

在此处输入图片描述

编辑:

随后几年,我发现维护这些证书非常困难,因为它们依赖于手动任务(即添加 TXT 记录)。而且我必须编写自己的一套脚本来更新这些 TXT 记录,这并不容易。

相关内容