【发布时间】:2013-08-14 15:06:06
【问题描述】:
假设我有一个通过http://webapp.mydomain.com 外部访问和通过http://webapp.intranetservername/ 内部访问的Web 应用程序
我需要两个 SSL 证书吗?或者可以使用同一个SSL证书吗?
【问题讨论】:
假设我有一个通过http://webapp.mydomain.com 外部访问和通过http://webapp.intranetservername/ 内部访问的Web 应用程序
我需要两个 SSL 证书吗?或者可以使用同一个SSL证书吗?
【问题讨论】:
您将需要两个 SSL 证书,一个用于 Intranet 服务器的证书必须是自签名的,因为禁止证书颁发机构为内部域签署证书(因为无法验证此类域的所有权) .
通常可以创建一个对多个域有效的 SSL 证书(通过使用主题备用名称扩展名)。但是,CA 不能签署一个,除非他们可以验证它声称对其有效的所有域。
【讨论】:
原则上,您可以拥有一个证书,其中包含webapp.mydomain.com 和webapp.intranetservername 的两个主题备用名称。在实践中,这是不现实的,因为没有 CA 会向 .intranetservername 发布任何内容,除非它也是一个正确的公共域名。
一般来说,如果.intranetservername不是注册域,没有CA会为其颁发证书,所以无论如何你都必须使用自己的CA。
如果您可以期望两种类型的客户端(内部和外部)都信任您自己的 CA,您当然可以使用该 CA 颁发具有两个 SAN 的证书。
如果您期望不同类型的用户(仅信任 CA 的默认捆绑包或也信任您的 CA),您将必须使用两个证书,每个证书一个颁发。您可能还需要将它们绑定到单独的 IP 地址(但 LAN 上额外的内部 IP 地址的可用性不一定是问题)。
更根本的是,您是否有充分的理由使用两个不同的名称调用在同一台机器上运行的同一个 Web 应用程序,无论您是在内部还是外部访问它?为什么内网的人不能和webapp.mydomain.com通话?
我认为这可能是为了以某种方式提高安全性,但如果它是同一台机器,它无论如何都会在两个网络上,所以我不确定这种名称分离会带来什么安全性改进。
如果您真的想要单独的名称,您可以将它们都放在您的外部域中(例如 webapp.mydomain.com 和 intranet.mydomain.com),并拥有由知名 CA 为两者颁发的证书(我仍然不确定不过,关于在同一台机器上分离名称的好处)。实际上,证书验证仅基于名称,您可以轻松地让您的 DNS 服务器将 intranet.mydomain.com 指向私有 IP 地址(例如 10.1.1.1)。来自外部的人将无法访问该地址,仅仅是因为它不会被路由,但它会在您的 Intranet 中正常工作(前提是 Intranet 上的机器能够发出 DNS 请求,某些环境会阻止此请求)。
【讨论】:
您将需要两个,因为 SSL 认证适用于域名,并且您在那里有两个域名。
您可以在两者上使用相同的,但在大多数浏览器中会显示一条错误消息,警告用户证书不真实。
您可以通过对 Intranet 站点进行自我认证并将自我认证分发到您的所有员工浏览器来规避必须在 Verisign 注册的成本。
根据企业的规模和将访问“webapp.intranetservername”的用户数量,这可能比简单地使用威瑞信注册两个域更便宜和更容易。
【讨论】: