因此,我获得了一台全新的 CentOS 8 服务器,并从 openSUSE Leap 15.1 迁移过来。Apache 的配置几乎是标准的,我只是将自己的站点作为包含项添加到目录下/etc/httpd/sites.d/
。
我的问题是,当我使用实验室服务器上使用多年的特定自签名证书时,httpd 无法启动!我收到的错误是,这AH00016: Configuration Failed
没什么帮助(SSL 日志文件是空的)。
即使没有特定的证书,其他启用 SSL 的站点(使用另一个证书)也可以正常运行,并且 httpd 可以正常启动。
如果我对所有站点使用相同的(有效)证书,httpd 会正常启动。如果我删除其他站点并仅使用这个站点,httpd 不会启动。如果我对所有站点使用相同的(有问题的)证书,httpd 不会启动。
证书和私钥(显然)匹配,因为我使用它们很长时间了,权限是正确的,SELinux 是不是一个问题,总的来说,我非常困惑。
以下是我目前所做的:
检查证书和密钥是否匹配:
openssl pkey -in /etc/pki/tls/private/server_ukey.pem -pubout -outform pem | sha256sum
6bb8de59f3527df9b5cf25a4e52e5ae42682399d795a439d0ba57ee67c8bc4b7 -
openssl x509 -in /etc/pki/tls/certs/server_cert.pem -pubkey -noout -outform pem | sha256sum
6bb8de59f3527df9b5cf25a4e52e5ae42682399d795a439d0ba57ee67c8bc4b7 -
因此,它们匹配。
检查权限:
ls -lrt /etc/pki/tls/certs/server_cert.pem
-rw-r--r--. 1 root apache 1590 Feb 1 07:55 /etc/pki/tls/certs/server_cert.pem
ls -lrt /etc/pki/tls/private/server_ukey.pem
-rw-r-----. 1 root apache 887 Feb 1 07:55 /etc/pki/tls/private/server_ukey.pem
请注意,即使权限为 600,错误消息也完全相同!
检查是否有语法错误:
httpd -t
Syntax OK
检查虚拟主机配置:
httpd -t -D DUMP_VHOSTS
10.0.0.1:80 is a NameVirtualHost
default server server.example.com (/etc/httpd/conf.d/_default_80.conf:2)
port 80 namevhost server.example.com (/etc/httpd/conf.d/_default_80.conf:2)
alias server
port 80 namevhost admin.news.example.com (/etc/httpd/sites.d/002-admin.f1.example.com.conf:1)
port 80 namevhost mysql.example.com (/etc/httpd/sites.d/003-mysql.example.com.conf:1)
port 80 namevhost phpipam.example.com (/etc/httpd/sites.d/005-phpipam.example.com.conf:1)
port 80 namevhost trd.example.com (/etc/httpd/sites.d/006-trd.example.com.conf:4)
alias trd
*:443 is a NameVirtualHost
default server server.example.com (/etc/httpd/conf.d/ssl.conf:40)
port 443 namevhost server.example.com (/etc/httpd/conf.d/ssl.conf:40)
port 443 namevhost trd.example.com (/etc/httpd/vhosts.d/006-trd.example.com.conf:19)
alias trd
所以,没什么奇怪的。
任何帮助,将不胜感激。