近期给网站的HTTPS签证书时发现一件怪事,证书生成是正常的,安装也安装到文件中了,但是nginx报错说不能读取证书,最后发现是生成的证书文件SELINUX权限有些错误,按网上的说法应该是使用下面的命令就可以恢复证书的权限了,但是实际试了一下,在我这边不起作用

restorecon -v -R

最后通过给文件的SELINUX追加http_exec_t的权限使nginx能够正确的读取证书。

chcon -t httpd_exec_t 目标文件

还有另一种解决方法是关闭SELINUX,彻底解决这些问题,但是我怀疑可能会有安全上的问题,遂作罢。

事后通过acme.sh重新生成证书,其中的SELINUX权限是正常的,是我百思不得其解,工具应该是没有问题,但是不知道为什么第一次生成的证书文件,权限上确实少了http_exec_t的权限,使nginx不能读取。

太怪了.jpg