@Kyle Jones——我的问题是,为什么我不能在本地机器上使用来自 QA 服务器的 SSL 证书?
@autonomatt - 子问题:VeriSign 和其他公司询问您在多少台服务器上安装 SSL 证书......让奇怪的客户打电话说他们的浏览器报告了证书问题......
合法吗?
您可以在多台计算机上安装 SSL 证书,但可能无法合法地这样做。签署 CA 公司,如 Network Solutions,对您的购买有法律限制。当您购买 SSL 证书时,您购买它只是为了安装在一台计算机上。您应该阅读从中购买证书的签名 CA 的条款。
技术上?
从技术上讲,除了一些硬件加速的 SSL 服务器,是的,您可以将 KEY 和 CRT 复制到任何 Web 服务器以提供有效的 SSL 连接。请注意,某些 SSL 证书是从 CA 运送/提供的,证书链也必须安装在服务器端。如果未安装证书链,客户端 Web 浏览器将无法正确验证 SSL 证书。您应该检查 CA 链是否与签名 CA 提供的 SSL 证书一起提供。
IP 解析要求。SSL 证书绑定到主机名。当客户端 Web 浏览器向服务器发出请求时,它会连接到从域名解析的 IP 地址,然后开始 SSL/TLS 握手过程。响应该 IP 地址的 Web 服务器必须提供带有客户端 Web 浏览器通过 IP 地址请求的通用名称的 SSL 证书。这意味着每个 IP 地址只能配置一个 SSL 证书。客户端只发送加密的 HTTP 1.1 请求,因此服务器直到 SSL/TLS 握手之后才知道客户端的实际域请求是什么。
非生产 IP 解析。要在别处安装,Web 浏览器必须将主机名正确解析为 IP 地址。因此,如果您在非生产环境中,客户端必须以不同于生产环境的方式解析 IP 地址。这可以通过备用 DNS 服务器执行,或者所有机器的本地主机文件都需要备用 DNS 解析。
技术安装过程。要在另一台机器上安装 SSL 证书,请将 KEY、SSL CRT 和 CA 链复制到为 Web 服务器配置的相应文件中。如果是 Apache,它可以全部放入 SSL 证书的一个 PEM 文件中。
然后确保 Web 服务器在解析 SSL 证书中的公用名的 IP 地址上提供此 PEM 文件。
通配符 SSL 证书。一些 CA 还提供 Willdcard SSL 证书,例如 *.domain.com 。请注意,Web 浏览器必须识别这种类型的证书,并且它只保护一个子域级别。所以 www.domain.com 可以被保护,但是 www.sub1.domain.com 会导致客户端网页浏览器给客户端用户一个验证错误。
客户端 Web 浏览器收到 SSL 证书验证错误的一些原因:
- 如果需要 CA 链但 Web 服务器未提供。
- 如果根签名 CA 不是客户端 Web 浏览器 SSL 授权中的受信任 CA - 自签名 SSL 证书始终如此。
- 如果客户端 Web 浏览器通过 SSL 请求与 SSL 证书的通用名称不匹配的域。
- 如果客户端浏览器无法从签名 CA 访问 x509 CRL 分发点 - 因此受限或封闭网络上的客户端将无法验证 SSL 证书。CRL 的 URL 在 SSL/TLS 握手期间提供。另见:http ://en.wikipedia.org/wiki/Revocation_list#Problems_with_CRLs 。