我在试图为Apache2安装一个新的SSL证书时遇到了问题。我们在端口80上运行正常的流量,在443上运行SSL。
我修改了httpd.conf,只将/etc/httpd/conf/2009certs/重命名为/etc/httpd/conf/2010certs/:
<VirtualHost ServerIP:443>
# This parameter already existed as-is
SSLEngine on
# These are the parameters I changed (already existed w/ diff paths.)
SSLCertificateFile /etc/httpd/conf/2010certs/server.crt
SSLCertificateKeyFile /etc/httpd/conf/2010certs/server.key
SSLCertificateChainFile /etc/httpd/conf/2010certs/intermediate.pem
SSLCACertificateFile /etc/httpd/conf/2010certs/gs_root.pem
# Other parameters here; ServerAdmin, DocumentRoot, ServerName, ErrorLog, etc....
</VirtualHost>另一个VirtualHost块存在于*:80,但没有对该区域进行任何更改。
在使用新的证书路径保存httpd.conf、注释掉旧的2009年路径并试图重新启动apache之后,/var/log/httpd/error_log和httpd中的以下内容无法启动:
您在标准HTTPS(443)端口上配置了HTTP(80)!
除了证书路径之外,没有任何更改,te问题在将httpd.conf更改回使用旧证书后消失。
是什么导致了这一切?
发布于 2010-10-22 17:26:52
问题的最终原因是在RSA私钥文件server.key上存在一个密码短语-- apache脚本没有配置为提供一个。
我不太清楚为什么这会导致上面的错误消息。我猜apache回到了端口80上的另一个VirtualHost配置,因为它无法读取SSL私钥文件,并且无法在443上作为HTTPS启动。
发布于 2021-09-01 14:21:14
我也遇到了这个问题,但是这个问题在本节中被发现是一个缺失的"ServerName“指令。我建议尝试对配置文件进行以下修改:
<VirtualHost ServerIP:443>
ServerName host.domain
# This parameter already existed as-is
SSLEngine on
# These are the parameters I changed (already existed w/ diff paths.)
SSLCertificateFile /etc/httpd/conf/2010certs/server.crt
SSLCertificateKeyFile /etc/httpd/conf/2010certs/server.key
SSLCertificateChainFile /etc/httpd/conf/2010certs/intermediate.pem
SSLCACertificateFile /etc/httpd/conf/2010certs/gs_root.pem
# Other parameters here; ServerAdmin, DocumentRoot, ServerName, ErrorLog, etc....
</VirtualHost>第三行:应该添加Servername host.domain,并将server.domain替换为您网站的实际主机名和域。
发布于 2016-02-10 14:28:15
我也有类似的问题,但原因是其中一个虚拟主机的域被解析为另一个服务器的IP。
https://serverfault.com/questions/170242
复制相似问题