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

Ubuntu服务器用Let's Encrypt为Nextcloud开启HTTPS时遇IO权限错误

解决Nextcloud启用Let's Encrypt HTTPS时的权限拒绝错误(Errno 13)

我来帮你搞定这个权限问题,这种情况我碰到过好几次,大概率是/etc/letsencrypt/cli.ini的权限配置或者脚本执行上下文的问题。下面是一步步的排查和解决方法:

1. 先确认cli.ini的实际权限

首先运行这条命令,看看文件的所有者和权限设置:

ls -l /etc/letsencrypt/cli.ini

Let's Encrypt的配置文件通常应该由root用户拥有,权限设置为600(只有root能读写)或者644(root读写,其他用户只读)。如果你的设置不对,先修正:

sudo chown root:root /etc/letsencrypt/cli.ini
sudo chmod 600 /etc/letsencrypt/cli.ini

之所以不用普通用户拥有这个文件,是因为sudo执行命令时是以root身份运行的,root才是应该拥有这个敏感配置文件的用户。

2. 尝试手动获取证书再导入Nextcloud

如果上面的方法还是不行,可能是nextcloud.enable-https脚本在调用certbot时的权限处理有问题。你可以绕开脚本,先手动用certbot获取证书,再导入到Nextcloud:

步骤1:用certbot申请证书

假设你的Nextcloud网站根目录是/var/www/nextcloud,域名是your-domain.com,运行:

sudo certbot certonly --webroot -w /var/www/nextcloud -d your-domain.com

按照提示完成证书申请,证书会生成在/etc/letsencrypt/live/your-domain.com/目录下。

步骤2:导入证书到Nextcloud

然后运行Nextcloud的HTTPS启用脚本,指定自定义证书路径:

sudo nextcloud.enable-https custom /etc/letsencrypt/live/your-domain.com/fullchain.pem /etc/letsencrypt/live/your-domain.com/privkey.pem

这样就能绕过脚本对cli.ini的直接访问,直接用已有的证书配置HTTPS。

3. 检查日志文件的详细信息

你提到的日志文件/tmp/tmpHx2bbg里应该有更具体的错误细节,比如到底是哪个用户在尝试访问cli.ini。可以运行这条命令查看日志:

cat /tmp/tmpHx2bbg

如果日志显示是www-data用户在访问这个文件,那说明脚本可能是以web服务器用户身份运行的,这时候你可以临时给www-data添加读取权限(不推荐长期这么做,用完最好改回去):

sudo chmod o+r /etc/letsencrypt/cli.ini

完成HTTPS配置后,记得改回原来的权限:

sudo chmod o-r /etc/letsencrypt/cli.ini

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:23