来自Start SSL的证书不可信

在一个小型的非商业网站上,我使用Start SSL的免费Class 1证书。 没有任何敏感数据通过networking传播,但是我确实希望为浏览网站的人提供至less隐私。 在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问题提到,服务器pipe理员应该安装一个中间证书,但我不确定是否存在Start SSL的中间证书。 在搬到另一家公司之前,我怎么知道他们是否拥有我们需要的所有适当的中间证书? 正如前面两个链接的问题所表明的,即使使用Verisign或GoDaddy也不能解决问题。

这是在Amazon Web Services上运行的常规LAMP堆栈(Ubuntu Server 12.04,Apache 2.2)。

安装说明不仅涉及中间证书文件,而且还提供一个下载链接。

  SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.pem 

我以前有过从StartSSL获得的证书,您需要configurationApache来提供中间证书来完成这个链。

您将需要:

  • 从StartSSL下载证书并上传到您的EC2实例
  • SSLCertificateChainFile指令添加到您的Apache VirtualHostconfiguration
  • 重新启动Apache

编辑 – gah,ninja'd。 好答案:)

你需要知道你是否应该有一个中级证书。 如果你的服务器在链中提供它,将帮助没有它的客户build立一个有效的链(假设他们有本地安装的StartSSL根证书)。

这可能不是这种情况,并不会帮助那些尚不具有本地可信任的StartSSL根证书的人员。 你不能帮助那些人,虽然他们将不得不安装它,以避免警告。