获得 Cyrus 的许可

获得 Cyrus 的许可

我在 Debian 7 系统上运行 Cyrus。我想通过仅允许特定服务访问 SSL 私钥来提高安全性。

我创建了一个组“ssl”,其中包含用户 mysql、postfix 和 cyrus 。

进程 cyrus 似乎以用户 cyrus 的身份运行:

$ ps aux | grep cyrus
cyrus     1294  0.0  0.0 126256  8112 ?        S    16:23   0:00 imapd -s -U 30
cyrus     1695  0.0  0.0  57036  3544 ?        Ss   Nov20   0:03 /usr/sbin/cyrmaster -d
cyrus     3656  0.0  0.0  83708  2408 ?        S    Nov20   0:00 notifyd
root     10779  0.0  0.0  11540   892 pts/1    S+   21:12   0:00 grep cyrus

private.key 具有 chmod 640 和 chown root:ssl 。 它未加密。

certificate.pem 具有 chmod 640 和 chown root:root 。

运行时su cyrus,我能够读取 private.key 文件,因此权限应该没问题。

当我尝试使用我的 IMAP 邮箱时,cyrus 报告说它无权访问私钥:

$tail /var/log/syslog
Nov 21 20:13:47 debian cyrus/imaps[20647]: unable to get private key from '/daten/ssl/xxx/private.key'
Nov 21 20:13:47 debian cyrus/imaps[20647]: TLS server engine: cannot load cert/key data, may be a cert/key mismatch?
Nov 21 20:13:47 debian cyrus/imaps[20647]: error initializing TLS
Nov 21 20:13:47 debian cyrus/imaps[20647]: Fatal error: tls_init() failed

/etc/imapd.conf 的相关部分:

tls_cert_file: /daten/ssl/xxx/certificate.pem
tls_key_file: /daten/ssl/xxx/private.key

tls_ca_file: /daten/ssl/ca/startcom/startcom.sub.class1.server.ca.crt
tls_ca_path: /daten/ssl/ca/startcom

当我将 private.key 的 chmod 改回 644 时,它确实起作用了。将其设置为 640,它就不再起作用了。

我该怎么做才能让 cyrus 工作?为什么以 cyrus 身份运行的进程无法访问 private.key?

相关内容