当使用 let's encrypt 时,以下目录只有 root 可以访问:
/etc/letsencrypt/live/
/etc/letsencrypt/archive/
启动 MariaDB 时,它以“mysql”用户身份运行,因此在尝试使用 Let's Encrypt 证书启用 SSL 时会收到错误消息。
[Warning] SSL error: SSL_CTX_set_default_verify_paths failed
到目前为止,这是预期的行为。当我执行:
chmod 755 /etc/letsencrypt/live/
chmod 755 /etc/letsencrypt/archive/
这允许 MariaDB 在启动时启用 SSL,可以在连接到 MariaDB 时使用以下命令进行检查:
show variables like '%ssl%'
好吧,问题是这个安全问题有多大。Nginx 可以使用具有默认权限的 Let's Encrypt 证书,即使它在我的系统上以用户“nginx”身份运行,但由于它使用的端口小于 1024,因此它似乎以比 MariaDB 更高的权限运行。
chmod 755 使 letsencrypt 私钥文件在我的系统上“全球可读”... 太丑了。您只能通过 SSH 公钥身份验证连接到我的服务器,并且不允许 root 登录。允许登录的用户除了 su root 之外什么都做不了,因此即使在系统上进行暴力破解似乎也是不可能的。系统上还有其他几个 sftp 用户被 chroot 并且无法访问 /etc/...
所以我应该是安全的,但我想知道是否有任何解决方案可以解决这个问题,而无需使 letsencrypt 目录可供全世界读取。(当然,除了使用 MariaDB 的自签名证书)