在一个小型非商业网站上,我正在使用Start SSL的免费 1 类证书。没有敏感数据通过网络传输,但我确实想为浏览该网站的人提供至少最低限度的隐私。在 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的FAQ 条目指出,为避免警告,必须将中间 CA 证书安装到浏览器。期望所有网站访问者都这样做有点不合理!
我不介意安装大公司的证书,但在研究情况时,我发现大公司也有同样的问题。另一个很好的 ServerFault 问题提到服务器管理员应该安装中间证书,但我不确定 Start SSL 是否存在中间证书。在搬到另一家公司之前,我怎么知道他们是否拥有我们需要的所有适当的中间证书?正如前两个相关问题所示,即使使用 Verisign 或 GoDaddy 也可能无法解决问题。
这是在 Amazon Web Services 上运行的传统 LAMP 堆栈(Ubuntu Server 12.04、Apache 2.2)。
安装说明不仅参考了中间证书文件,还提供了下载链接。
我以前有来自 StartSSL 的证书,您需要配置 Apache 以提供中间证书以完成链。
您将需要:
SSLCertificateChainFile
向您的 Apache VirtualHost 配置添加指令编辑 - 啊,忍者。好答案:)
您需要确定您是否应该拥有中间证书。如果你让你的服务器在链中提供它,将帮助任何没有它的客户端构建一个有效的链(假设他们在本地安装了 StartSSL 根证书)。
情况可能并非如此,这不会帮助那些还没有本地受信任的 StartSSL 根证书的人。尽管他们必须安装它以避免警告,但您无法帮助这些人。