通常需要TLS的临时服务器如何实现?

时间:2017-01-15 10:20:14

标签: ssl server lets-encrypt

我有一台主服务器,可以为https://www.example.com的所有传入流量提供服务。主服务器为客户端分配辅助服务器以建立持久的安全WebSocket连接。

这些辅助服务器可以在临时的基础上启动和停止(取决于现有辅助服务器的拥挤程度),并且在启动时将为它们提供新的公共IP地址(可能使用AWS或类似Linode的云托管服务)。启动时,辅助服务器将通过主服务器进行身份验证,并告知主服务器其公共IP地址(以便主服务器可以通知传入的客户端)。

要使用安全的WebSocket(wss://)连接,我需要获取该服务器的证书,这可能意味着我需要一个子域名来提供给每个辅助服务器。但域名需要很长时间才能通过互联网传播,因此我无法立即启动和使用服务器。

除非我仅使用IP地址获得证书(这意味着我的辅助服务器将没有域名)。由于云托管服务在关闭服务器时不会保留固定的IP地址,因此这看起来并不安全。

对于我的证书颁发机构,我使用Let's Encrypt,因为我正在运行一个在线游戏,其中跨越WebSocket连接的数据并不是非常敏感。

这整件事似乎太复杂了,无法在我的服务器上设置TLS。

如何正确完成?有没有办法只启动辅助服务器实例,让它自动设置TLS?或者我应该忘记这一切而不是将TLS用于辅助服务器?

1 个答案:

答案 0 :(得分:1)

首先命名"传播"不是真实的,或者更确切地说,它是一个仅基于DNS缓存的事实松散的传奇。如果您认真对待这款游戏,并实时撕毁服务器,您最终需要学习(或需要雇用知道的人)这些东西。如果你已经认识到"传播"需要数小时甚至数天才能使用便宜的网络托管服务,因为它让您知道差异,因此无法提供更好的服务。

最简单的方法是,如果这将成为一些大型服务器并且正在被拆除的大服务,那就是购买一个通配符证书,即一个说* .example.com并运行的证书对于任何名为anything.example.com的服务器(虽然没有额外的点,但请注意,由于额外的点,它无法为something.subdomain.example.com工作)。我们的加密不提供通配符,但是,如果您只需要一个通配符来运行整个服务,它们就不会非常昂贵。

另一方面,如果您以便宜的方式做事,请使用我们的加密DNS-01验证方法,让您为一套服务器名称颁发证书。知道他们的地址是什么。因此,您可以使用此验证获取证书列表server01.example.com,server02.example.com等,直至server40.example.com,您现在可以将此证书(和随附的私钥)用于任何具有此功能的计算机任何一个被旋转的名字。这种做事方式在安全方面并不理想,但是你说你不太关心这一点。

使用DNS-01方法意味着您不需要在颁发证书时让服务器实际工作,只需控制其DNS记录即可。你需要事先弄清楚你可能需要的大量服务器,但坦率地说,如果你正在建立一个不确定它是否会有五个玩家或五百万玩家的游戏,你可能会遇到最糟糕的问题。 #39;将与TLS合作。