Postfix TLS 错误 - 权限被拒绝

Postfix TLS 错误 - 权限被拒绝

我遇到了一个奇怪的问题。在 Postfix 中,我遇到了一些新证书的问题。我有一个 .crt 和 .key 文件,当尝试在 main.cf 中使用它们时,我在日志中收到以下信息:

Sep 16 08:06:09 mx1 postfix/smtpd[25172]: warning: cannot get RSA certificate from file /etc/postfix/new.crt: disabling TLS support
Sep 16 08:06:09 mx1 postfix/smtpd[25172]: warning: TLS library problem: 25172:error:0200100D:system library:fopen:Permission denied:bss_file.c:402:fopen('/etc/postfix/new.crt','r'):

奇怪的是,旧证书工作正常,并且权限似乎相同:

-rw-rw-r--.  1 root       root        2774 Sep 15  2018 old.crt
-rw-r--r--.  1 root       root        1675 Sep 15  2018 old.key
-rw-r--r--.  1 root       root        2228 Sep 16 07:51 new.crt
-rw-r--r--.  1 root       root        1675 Sep 16 07:52 new.key

有什么想法吗?谢谢。

答案1

.权限 行 末尾 的 ( )-rw-r--r--.表示 对 文件 有 扩展 的 SELinux 权限 , 而 这些 权限 是 普通 权限 所 不能 显示 的ls -l.

在这些文件上运行ls -Z。很可能它们具有错误的 SELinux 上下文。

然后您可以使用 设置正确的 SELinux 上下文chcon

答案2

您还可以运行

restorecon -rv [directory]

如果您将目录从其他地方移动,或者没有 -Z 标志,则恢复正确的 SELinux 上下文。

确保目录的权限和所有权正确(640 和 root:root),而不仅仅是里面的文件。

就我而言,我执行了 sftp 将证书放到服务器上,然后将包括证书在内的整个目录复制到最终位置。

确保在更正权限和所有权(root:root & 640)时,对整个目录进行递归操作,而不仅仅是目录内的文件。

相关内容