内部和外部使用的SSL证书

时间:2013-08-14 15:06:06

标签: security ssl web

假设我有一个通过http://webapp.mydomain.com从外部访问的Web应用程序,并通过http://webapp.intranetservername/内部访问

我需要两张SSL证书吗?或者可以使用相同的SSL证书吗?

3 个答案:

答案 0 :(得分:6)

您将需要两个SSL证书,并且Intranet服务器的证书必须是自签名的,因为证书颁发机构禁止为内部域签署证书(因为无法验证此类域的所有权)

通常可以创建对多个域有效的单个SSL证书(通过使用“主题备用名称”扩展名)。但是,CA再次无法签署,除非他们可以验证它声称有效的所有域名。

答案 1 :(得分:5)

原则上,您可以拥有一个包含webapp.mydomain.comwebapp.intranetservername两个主题备用名称的证书。在实践中,这是不现实的,因为没有CA会向.intranetservername发布内容,除非它也是一个合适的公共域名。

一般来说,如果.intranetservername不是注册域名,则CA不会为其颁发证书,因此您无论如何都必须使用自己的CA.

  • 如果您希望两种类型的客户端(内部和外部)都信任您自己的CA,那么您当然可以使用此CA颁发带有两个SAN的证书。

  • 如果您期望不同类型的用户(仅信任默认的CA捆绑或信任您的CA),您将必须使用两个证书,每个证书各颁发一个。您可能还需要将它们绑定到单独的IP地址(但LAN上额外内部IP地址的可用性不一定是个问题)。

更重要的是,有没有什么理由可以通过两个不同的名称调用同一台运行在同一台计算机上的同一个Web应用程序,无论是内部访问还是外部访问?为什么内联网中的人不能与webapp.mydomain.com通话?

我认为这可能是一种尝试以某种方式增加安全性,但如果它是同一台机器,那么无论如何它都将在两个网络上,所以我不确定这个名称分离会带来什么样的安全性改进。

如果你真的想要单独的名字,你可以将它们放在你的外部域(例如webapp.mydomain.comintranet.mydomain.com),并且拥有由着名的CA颁发的证书(I')但仍然不确定在同一台机器上分离名称的优势。实际上,证书验证仅基于名称,您可以轻松地让您的DNS服务器将intranet.mydomain.com指向私有IP地址(例如10.1.1.1)。来自外部的人将无法访问该地址,仅仅因为它不会被路由,但它将在您的Intranet中正常工作(如果Intranet上的计算机能够发出DNS请求,某些环境会阻止此行为)。

答案 2 :(得分:2)

您需要两个,因为SSL认证适用于域名,并且您有两个域名。

您可以在两者上使用相同的内容,但在大多数浏览器中都会显示一条错误消息,警告用户该证书不是真实的。

您可以通过自我认证Intranet站点并将自我证书分发给您的所有员工浏览器来解决与Verisign一起注册的成本问题。

根据企业的规模和访问“webapp.intranetservername”的用户数量,这可能比使用Verisign简单地同时修改两个域更便宜,也可能更容易。