我在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
权限对我来说还可以,我在做什么错?
这是因为您可能首先将文件上传到一个主目录,然后将它们移到/etc目录中的某个地方。要纠正此文件的上下文,请执行以下命令:
restorecon -RvF /etc/ssl/certs/
和RESTAR APACHE service httpd restart
。
希望它有帮助。
大卫,
我建议首先更改密钥文件上的权限和所有权
更改所有权: sudo chown root:root localhost.key
更改权限: sudo chmod 600 localhost.key
要解决问题,我需要从键
删除密码: openssl rsa -in localhost.key -out localhost_nopp.key
之后,只需将sslcertificatekeyfile参数更改为localhost_nopp.key和restart apache。
我猜这会产生一个"干净"文件,即Apache现在很乐意使用。由于这似乎是开发/测试环境,因此假设删除密码不会引起重大安全问题。
谢谢,
约翰