SSL 证书密钥权限 - Tomcat APR

SSL 证书密钥权限 - Tomcat APR

我有一份 GoDaddy 的 SSL 证书,我想将其用于我的 tomcat 安装。目前,Apache HTTP 服务器正在使用它,没有任何问题。

私钥存储在 /etc/ssl/private 中,访问受到限制。但是,Apache HTTP 服务器通过 SSL 提供正确的证书没有任何问题。

当我尝试将 tomcat 指向相同的私钥时,它无法初始化安全协议,因为它无法读取私钥。这是我的 server.xml 的摘录。我使用的是 APR:

<Connector SSLCertificateFile="/etc/ssl/certs/mysite.crt"
               SSLCertificateKeyFile="/etc/ssl/mysite.key"
               SSLEnabled="true" maxThreads="150" port="8443"
               protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLSv1" />

这会产生错误。Apache HTTP 配置如下所示,并且可正常工作:SSLCertificateFile /etc/ssl/certs/mysite.crt SSLCertificateKeyFile /etc/ssl/private/mysite.key

据我所知,/etc/private 目录的权限未发生改变:drwx--x--- 2 root ssl-cert 4096 2011-05-01 11:50 private 内部:-rw-r--r-- 1 root root 1,7K 2011-04-30 11:00 mysite.key

现在我的问题是:如何让 tomcat 使用同一个文件?我的临时解决方案是将密钥文件复制到可公开访问的地方,但我认为这很危险,对吗?

谢谢

答案1

ssl-cert组对 具有遍历权限private,并且每个人都对密钥本身具有读取权限 - 因此,运行 Tomcat 的用户可能不是该ssl-cert组的成员。

将用户添加到组以授予其对证书的只读访问权限:

usermod -a -G ssl-cert tomcatusername

并且,尽管您已经锁定了目录权限(应该可以覆盖您),但您可能希望更改证书本身的权限以匹配(某些服务会检查私钥是否可在全球范围内读取):

chown root:ssl-cert /etc/ssl/private/mysite.key
chmod 640 /etc/ssl/private/mysite.key

相关内容