我在一家小型非商业网站上使用了免费的 Class 1 证书启动 SSL。网络上没有敏感数据,但我确实希望为浏览该网站的任何人提供至少最低限度的隐私。使用 Firefox 访问该网站时,会收到“不受信任的证书”警告。以下是使用的示例wget
:
$ wget https://example.com/images/dog.jpg
--2013-08-09 15:21:10-- https://example.com/images/dog.jpg
Resolving example.com (example.com)... 54.43.17.16
Connecting to example.com (example.com)|54.43.17.16|:443... connected.
ERROR: The certificate of `example.com' is not trusted.
ERROR: The certificate of `example.com' hasn't got a known issuer.
这StartSSL 的常见问题解答指出要避免出现警告,必须在浏览器中安装中级 CA 证书。要求所有网站访问者都这样做有点不合理!
我不介意安装大公司的证书,但在研究情况时我发现大公司也面临同样的问题。另一个很好的 ServerFault 问题提到服务器管理员应该安装中间证书,但我不确定 Start SSL 是否存在中间证书。在转到另一家公司之前,我如何知道他们是否拥有我们需要的所有适当的中间证书?正如前面两个链接的问题所示,即使使用 Verisign 或 GoDaddy 也可能无法解决问题。
这是在 Amazon Web Services 上运行的传统 LAMP 堆栈(Ubuntu Server 12.04、Apache 2.2)。
答案1
答案2
我之前曾拥有来自 StartSSL 的证书,您需要配置 Apache 来提供中间证书以完成链。
您需要:
- 从 StartSSL 下载证书并上传到您的 EC2 实例
SSLCertificateChainFile
向您的 Apache VirtualHost 配置添加指令- 重启 Apache
编辑 - 哇,忍者了。很好的答案 :)
答案3
您需要确定您是否应该拥有中间证书。如果您拥有中间证书,则让您的服务器在证书链中提供证书,这将有助于任何没有证书的客户端构建有效的证书链(假设他们已在本地安装了 StartSSL 根证书)。
情况可能并非如此,这对尚未在本地信任 StartSSL 根证书的用户没有帮助。虽然他们必须安装它才能避免出现警告,但你无法帮助他们。