You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为运行Java应用的Linux用户授予LetsEncrypt pem文件访问权限

问题根因

你执行的权限命令未生效核心有两个原因:

  1. /etc/letsencrypt/live/域名/下的cert.pem、privkey.pem都是软链接,实际文件存储在/etc/letsencrypt/archive/对应域名/目录下,仅修改软链接的权限/属主不会对实际文件生效
  2. /etc/letsencrypt/live、/etc/letsencrypt/archive两个上层目录默认仅root用户有访问权限,你的应用运行用户连进入目录的权限都没有,哪怕文件本身权限足够也会提示文件不存在

安全的权限配置方案

全程不要使用777、a+rwx这类全局可写权限,会导致私钥泄露风险,按照以下步骤操作即可(将appuser替换为你实际运行Java应用的用户名,你的域名替换为证书对应域名):

  1. 创建专用证书访问用户组,将应用用户加入组
sudo groupadd cert-users
sudo usermod -aG cert-users appuser
  1. 配置证书相关目录和文件的组权限
# 给上层目录配置组可进入(执行权限)、可读权限
sudo chmod 750 /etc/letsencrypt/{live,archive}
# 将目录属组修改为刚创建的证书组
sudo chgrp -R cert-users /etc/letsencrypt/{live,archive}
# 给实际证书文件配置组可读权限
sudo chmod -R 640 /etc/letsencrypt/archive/*/*.pem
  1. 验证权限是否生效
# 切换到应用运行用户
sudo su - appuser
# 执行以下两个命令,无报错即代表权限配置正常
cat /etc/letsencrypt/live/你的域名/cert.pem
cat /etc/letsencrypt/live/你的域名/privkey.pem

自动续期兼容配置

Certbot自动续期后会重置证书权限,你可以添加续期钩子自动重设权限:打开/etc/letsencrypt/cli.ini文件,添加如下配置即可:

renew_hook = chgrp -R cert-users /etc/letsencrypt/{live,archive} && chmod -R 750 /etc/letsencrypt/{live,archive} && chmod -R 640 /etc/letsencrypt/archive/*/*.pem

内容的提问来源于stack exchange,提问作者Kihz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:24:00