Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有多个crt文件的apacheconf_Apache_Ssl - Fatal编程技术网

带有多个crt文件的apacheconf

带有多个crt文件的apacheconf,apache,ssl,Apache,Ssl,我买了Comodo PositiveSSL,得到了4个crt文件: AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt domain.com.crt 我有这个配置: <VirtualHost *:443> ServerName domain.com ServerAlias www.domain.com SSLEngine on SSLCerti

我买了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>

https连接工作正常,但浏览器似乎看不到我的签名。我认为问题在于将所有4个文件添加到apache配置中,但我不知道怎么做

这些文件是证书链。有根域证书,有中间证书,还有您自己的证书

您自己的证书已被
SSLCertificateFile
引用。根证书通常安装在用户的浏览器中(这是您支付的费用……事实上,他们向浏览器供应商支付了包含其根证书的费用)

但是您的证书不是直接从根证书派生的,但是有这些

由于您没有直接从浏览器中的某个根证书派生的证书,因此必须将整个证书链传递给用户。(是的,根证书也有一个完整的链。)

这通常是通过将所有三个文件放入一个cert文件(比如intermediate.comdo.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
…
此文件中的证书的顺序必须正确…根在顶部,然后在链的底部(IIRC,但您可能需要尝试不同的顺序)


如果您的服务器是公用的,请使用SSLlabs服务测试您的设置:(注意,在使用不同配置进行多次测试时,每次更改后都必须清除它们的缓存。否则,您将立即从上次对服务器的测试中获得结果。)

谢谢,这非常有用。我开始搜索这个方向的信息,发现这篇文章帮助我完成了任务,经过两个小时的战斗。。。
…
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
…