我买了Comodo PositiveSSL并获得了4个crt文件:
AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt
domain.com.crt
我有这个配置:
<VirtualHost *:443>
ServerName domain.com
ServerAlias www.domain.com
SSLEngine on
SSLCertificateFile /var/www/domain.com/domain.com.crt
SSLCertificateKeyFile /var/www/domain.com/domain.com.key
ServerAdmin webmaster@localhost
DocumentRoot /var/www/domain.com/html
<Directory /var/www/domain.com/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
如何使用这3个文件:
AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt
https连接会产生罚款,但似乎浏览器看不到我的签名。我认为问题是将所有4个文件添加到apache配置,但我不知道该怎么做。
答案 0 :(得分:2)
这些文件是证书链。有一个 root 域证书,有中间证书,并且有你自己的证书。
SSLCertificateFile
已经引用了您自己的证书。根证书通常安装在用户的浏览器中(这是您支付的费用......他们向浏览器供应商支付了包含其根证书的事实。)
但您的证书并非直接来自根证书,但有intermediate certificates。
由于您没有直接从浏览器中的某个根证书派生的证书,因此您必须将整个证书链交付给用户。 (是的,根证书也有一个完整的链。)
通常通过将所有三个文件放入一个证书文件(比如intermediate.comodo.crt)并在Apache配置中引用它们来完成。它看起来像这样:
…
SSLEngine on
SSLCertificateFile /var/www/domain.com/domain.com.crt
SSLCertificateChainFile /var/www/domain.com/intermediate.comodo.crt
SSLCertificateKeyFile /var/www/domain.com/domain.com.key
…
此文件中的证书必须按照正确的顺序... root在顶部,然后在链中(IIRC,但您可能需要尝试不同的顺序)。
如果您的服务器是公共的,请使用SSLlabs服务来测试您的设置:https://www.ssllabs.com/ssltest/(注意,当使用不同的配置进行多次测试时,您必须在每次更改后清除其缓存。否则您将立即获得上次测试服务器的结果。)