我有一台 Windows Server 2008 计算机,它托管着我的两个网站。我不希望以明文形式发送用户密码。据我了解,要解决这个问题,我需要使用 HTTPS。安装 SSL 证书后,即可使用 HTTPS。我有几个问题:
- SSL 是按域名还是按服务器安装的?如果按服务器安装,我可以对我的两个网站使用同一个 SSL 证书吗?
- SSL 证书可以移植吗?换句话说,如果我选择移动服务器,是否有办法将证书移动到新服务器?
- 有没有办法可以在我的本地开发机器上测试 https?
- 目前,我是相对导航到我的页面的。如果使用 HTTPS,这会受到影响吗?
谢谢你!
答案1
- SSL 是按域名还是按服务器安装的?如果按服务器安装,我可以对我的两个网站使用同一个 SSL 证书吗?
取决于证书颁发机构/经销商施加的限制,但通常是针对每个域的,因为您在通用名称 (CN) 中使用的内容需要与站点的域相匹配,如果两者不同,则您不能使用相同的证书,否则它会在用户的浏览器上抛出有关证书不匹配的错误。还有主题备用名称(SAN)证书,允许您保护多个域(其中通配符将执行多个子域名即 *.example.com),它们可以在大多数浏览器和移动设备上使用,但通常更昂贵。另一个问题是虚拟服务器和 SSL 不兼容,因此除非您想在不同的 SSL 端口上托管第二个站点,否则您需要另一个 IP 地址(如果您的 IIS 服务器位于防火墙后面,还需要另一个静态公共 WAN IP 进行 DNAT),或者您需要对所有具有 SAN 证书的站点使用相同的证书并配置SSL 主机标头在 IIS 中。
- SSL 证书可以移植吗?换句话说,如果我选择移动服务器,是否有办法将证书移动到新服务器?
是的,您需要导出私钥从服务器。
- 有没有办法可以在我的本地开发机器上测试 https?
当然,您可以安装自签名证书。IIS 资源工具包附带一个生成自签名证书的工具;我相信 IIS 7 有一个内置的自签名证书(但只允许证书的有效期为一年)。
- 目前,我是相对导航到我的页面的。如果使用 HTTPS,这会受到影响吗?
不,只有绝对路径(即<img src="http://www.example.com/img/img.jpg" />
在启用 SSL 的站点中会弹出警告,提示页面上并非所有对象都已加密。