内部和外部使用的SSL证书

Has*_*eau 8 security ssl web

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

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

dus*_*uff 6

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

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


Bru*_*uno 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颁发的证书(我仍然不确定分离名称的优势)但是同一台机器.实际上,证书验证仅基于名称,您可以轻松地将DNS服务器指向intranet.mydomain.com私有IP地址(例如10.1.1.1).来自外部的人将无法访问该地址,仅仅因为它不会被路由,但它将在您的Intranet中正常工作(如果Intranet上的计算机能够发出DNS请求,某些环境会阻止此行为).