我在运行localhost的apache上启用了ssl。我生成了一个自签名证书并将其放在通常的位置:
[david@david web]$ ll /etc/ssl/certs/
...
-rwxrwxrwx. 1 david david 977 Mar 7 13:18 localhost.crt
-rwxrwxrwx. 1 david david 712 Mar 7 13:16 localhost.csr
-rwxrwxrwx. 1 david david 963 Mar 7 13:12 localhost.key
但是当我重启Apache时,服务器出现故障,我在错误日志中收到以下内容:
[Fri Mar 07 13:29:17 2014] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Fri Mar 07 13:29:17 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Mar 07 13:29:17 2014] [error] (13)Permission denied: Init: Can't open server private key file /etc/ssl/certs/localhost.key
权限对我来说没问题,我做错了什么?
答案 0 :(得分:25)
这是因为您可能首先将文件上传到您的一个主目录,然后将它们移动到/ etc目录中的某个位置。 要更正此文件的上下文,请执行以下命令:
restorecon -RvF /etc/ssl/certs/
并重新启动Apache service httpd restart
。
希望它有所帮助。
答案 1 :(得分:0)
大卫,
我建议首先更改密钥文件的权限和所有权
更改所有权: sudo chown root:root localhost.key
更改权限: sudo chmod 600 localhost.key
要解决这个问题,我需要从密钥
删除密码: openssl rsa -in localhost.key -out localhost_nopp.key
之后,只需将SSLCertificateKeyFile参数更改为指向localhost_nopp.key并重新启动Apache。
我猜这会产生一个Apache现在乐于使用的“干净”文件。由于这在开发/测试环境中出现,因此假设删除密码短语不会导致严重的安全问题。
谢谢,
约翰