为 Postgresql 使用 Letsencrypt 证书

alg*_*len 5 postgresql permissions debian ssl-certificate lets-encrypt

我已经在 Debian 8 Jessie 上为我的 NGINX 网络服务器成功配置了 Letsencrypt。

现在我已经安装了 Postgresql 9.4 并想使用 LE 证书(在/etc/letsencrypt/live/mydomain/com/...)进行 SSL 连接。我已经在配置文件 ( /etc/postgresql/9.4/main/postgresql.conf) 中设置了证书和密钥的路径。

可以预见的是,当我尝试通过pg_ctlcluster它重新启动 Postgres 时,由于Permission denied证书而失败。我知道 Postgresql 是使用用户postgres运行的,并且该用户无权访问此目录。

我如何以干净的方式解决这个问题?

sil*_*iud 3

您可以将 postgres 用户添加到wheel组或可以访问目录/etc/letsencrypt/live/mydomain/的其他组,或者使postgres用户成为证书的所有者(如果专门使用)。

将 postgres 所有者设置为假设位置的示例命令

sudo mkdir /etc/postgres/
sudo mv /etc/letsencrypt/live/mydomain/com/pg.crt /etc/postgres/pg.crt
sudo mv /etc/letsencrypt/live/mydomain/com/pg.key /etc/postgres/pg.key
sudo chown -R postgres: /etc/postgres
Run Code Online (Sandbox Code Playgroud)

然后您需要调整 /etc/postgresql/9.4/main/postgresql.conf 以指向新路径。

  • LetsEncrypt 证书必须每 2 个月更新一次,因此仅移动文件并不是一个好主意。最好告诉 Postgres 直接使用 /etc/letsencrypt/live/* 位置。 (10认同)