我有 2 台服务器,两台都是 CentOS,其中一台充当 CA 服务器(使用 openssl),另一台充当 Web 服务器(使用 apache 2.4)。我想为我的测试网站设置 https,因此我执行了以下步骤:
1)在网络服务器中我创建了一个密钥对: 密匙对
2)在网络服务器中创建 csr 请求: 要求
3)然后我将其复制到我的CA服务器并创建了一个证书文件:
4)然后我将证书文件复制回我的网络服务器: 密钥文件
如您所见,我将密钥文件和证书文件复制到 /etc/pki/tls/certs/ 和 /etc/pki/tls/private
5)我在 httpd.conf(运行良好)和 ssl.conf 中创建了一个虚拟主机: ssl.conf 文件
6)现在,当我尝试重新启动 httpd 服务时,出现以下错误: 错误
如您所见,它说 SSLCertificateFile 不存在或为空,但实际上它存在且不为空。
如果你能帮助我解决这个问题我将非常感激。
提前致谢
答案1
apachectl configtest
通常检查配置文件中的语法。可能不会发现命名错误或文件权限问题。
尝试检查这些:
- 复制错误消息中的链接(带有证书名称)并执行
ls -l /etc/pki/xxx
。这是为了确保配置文件中的语法正确。 - 检查证书是否损坏。示例如下:
验证证书
openssl x509 -in /etc/pki/xxx.crt -text -noout
验证私钥
openssl rsa -in /etc/pki/xxx.key -检查