内部 SSL 证书?

信息安全 tls 证书 证书颁发机构
2021-08-25 20:10:50

作为一名开发人员,我真的很喜欢使用 OpenSSL 来获得非常好的、免费的 SSL 证书的想法。不幸的是,从我迄今为止所做的所有研究/分析来看,似乎没有任何方法可以使用 OpenSSL 以使我的网络用户的浏览器信任它为我生成的证书。

看起来,为了避免我的用户从他们的浏览器收到讨厌的警告消息(抱怨我的 OpenSSL 生成的证书不受信任/验证),我将不得不使用像 Trustwave、VeriSign 等主要供应商.

我想知道是否存在“公共”与“私有”SSL 证书的概念?我的意思是,我会从这些供应商之一购买“公共”SSL 证书,并将其用于我的用户浏览器和我面向公众的 HTTP 服务器之间的所有通信。但是,一旦使用了服务器端消息,它将使用不同的“私有”(OpenSSL 生成的)证书与后端的其余部分进行通信。

这背后的想法是使用安全传输保持数据在我的后端移动,但不必为大量不同的 SSL 证书付费。

这是闻所未闻的还是完全没有必要的?还是这是标准做法?

为什么我需要这些数据在我自己的 2 台后端服务器之间保持安全?我不知道。可能不需要但可能不会受伤。想法?

2个回答

是的,对于您的后端,您可以使用 OpenSSL 生成自签名证书,就像您已经完成的那样。不同之处在于您需要指示您的前端服务器信任这些证书(如何取决于所使用的平台)。

或者,您可以设置自己的私有 CA(证书颁发机构,例如 Verisign)并让您的前端服务器信任其根证书,然后使用它为您的后端服务器生成证书。如果您需要使用许多证书,这会更容易,除此之外没有区别。

这正是“公共”证书的工作方式,除了众所周知的 CA 的根证书与浏览器等捆绑在一起。他们是值得信赖的,因为他们会检查您的身份,而这正是他们收取的费用,而不是创建证书的技术方面的费用。

当然,还有前后端通信是否需要安全的问题。有人可以在线收听吗?这取决于您的主机设置。

这背后的想法是使用安全传输保持数据在我的后端移动,但不必为大量不同的 SSL 证书付费。

您可以使用http://www.startssl.com为您颁发免费证书。我以前使用过它们,它在我迄今为止测试过的所有浏览器上都运行良好(显示绿色锁)。免费证书还允许您使用一个免费的子域。

如果您愿意花一些钱,那么他们的2 类证书允许使用通配符,这意味着您可以拥有证书,*.yourdomain.com并且可以使用它来验证您的所有子域,例如。mail.yourdomain.com,ftp.yourdomain.com等等。只有一个证书。

同样,您可以按照 Bart 的建议使用 OpenSSL 证书进行内部通信。他们的工作方式是:

  • 您的面向 Web 的外部站点使用证书(由 startSSL 或威瑞信提供)。
    • 您的访问者使用它访问它 https://www.yourdomain.com/whateverpage
    • 由于它来自有效的 CA(浏览器可以识别和信任),因此您的用户将永远不会看到 SSL 警告。时期。
  • 现在假设从您的代码中,您需要调用托管在内部机器上的内部(REST/SOAP)api。
    • 您从代码中调用它(使用 rest/soap/whatever 客户端)作为https://10.23.42.23/getDetails?user=blah. 假设此服务在不同的 Web 服务器实例上运行,它可以使用您创建的 openSSL SSL 证书。当您来自 yourdomain.com 的代码通过 https 查询此 API 时,它将通过 SSL(因此加密),并且由于您的 API 不被浏览器使用,它显然不会向用户标记任何 SSL 错误。
    • 但是,您可能需要配置您的代码(REST/SOAP 客户端)以忽略任何 SSL 警告。

由于缺乏对您的确切架构的了解,我在示例中进行了概括,但它传达了基础知识。

这是闻所未闻的还是完全没有必要的?还是这是标准做法?

看到这种设置并不少见,所以你肯定在朝着正确的方向思考。

为什么我需要这些数据在我自己的 2 台后端服务器之间保持安全?我不知道。可能不需要,但可能不会受伤。想法?

通过 SSL 在后端服务器之间传输数据也不会受到影响。有几个好处。

  • 您可能不希望内部员工在中间机器(数据流经该机器)上连接 tcpdump 并窥探流量。有了 SSL,她就不走运了。
  • 如果您想将其中一台后端机器的功能移出网络(拥抱云 - 亚马逊/机架空间),该怎么办。你猜怎么着,你不需要做任何额外的事情来保护通信。这已经涵盖了。(出现了 MITM 的新问题,但那是另一回事)
  • 深度防御宣扬具有多层安全性。如果可行的话,我肯定更喜欢内部通信而不是 SSL。一项实际研究表明,SSL/TLS 的计算成本不再高因此,服务器的负担不再是一个问题。