我们有一个运行 Plesk 的 GoDaddy 专用服务器,需要 SSL。
我已经生成了证书文件并创建了一个 vhost_ssl.conf(因为我无法编辑默认的 plesk apache 配置 http.include,vhost_ssl.conf 被包含到 httpd.include),它告诉 apache 在哪里可以找到证书文件:
SSLCertificateFile /usr/local/psa/var/certificates/domain.com.crt
SSLCertificateKeyFile /usr/local/psa/var/certificates/domain.com.key
SSLCertificateChainFile /usr/local/psa/var/certificates/sub.class1.server.ca.pem
当我停止/启动 apache 时,它拒绝启动。error_log 上也没有任何内容(这很奇怪)。
然后我打开 httpd.include 发现了这一点:
<VirtualHost 208.xxx.xxx.xxx:443>
ServerName domain.com:443
ServerAlias www.domain.com
UseCanonicalName Off
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /usr/local/psa/var/certificates/certagC9054
Include /var/www/vhosts/domain.com/conf/vhost_ssl.conf
然后我注释掉了
SSLCertificateFile /usr/local/psa/var/certificates/certagC9054
(这是 plesk 的 SSL 证书)并重新启动了 apache,它工作得非常好。
似乎 Apache 不喜欢同一个 VirtualHost 指令中的多个 SSLCertificateFile?
任何使用过 plesk 的人都知道,我不能只删除 httpd.include 中的 SSLCertificateFile 指令,因为当有人使用它时 plesk 会覆盖我的更改——这就是它在 vhost_ssl.conf 中的原因。
所以我被困住了,这超出了我微薄的管理技能。希望知道他在做什么的人告诉我发生了什么。
提前致谢。