Ubuntu+Nginx环境下生成SSL链式证书遇权限拒绝错误求助
解决Ubuntu下生成SSL链式证书时的Permission Denied错误
错误原因
你执行的sudo cat example.com.crt intermediate.crt > example.com.chained.crt中,sudo仅作用于cat命令,而重定向符号>是由当前普通用户的Shell进程处理的,并非以root权限执行。如果当前目录对普通用户没有写入权限,就会触发Permission denied错误。
解决方案
方法1:用sudo bash执行整个命令
将整个命令包裹在sudo bash -c中,让重定向操作也以root权限执行:
sudo bash -c 'cat example.com.crt intermediate.crt > example.com.chained.crt'
方法2:通过管道和sudo tee写入文件
利用tee命令在sudo权限下写入文件,同时通过>/dev/null屏蔽多余输出:
cat example.com.crt intermediate.crt | sudo tee example.com.chained.crt > /dev/null
方法3:切换到root用户后执行
先切换到root环境,再执行拼接命令:
sudo su cat example.com.crt intermediate.crt > example.com.chained.crt exit # 完成后退出root
额外建议
生成链式证书后,建议将证书移动到Nginx常用的证书目录(如/etc/ssl/certs/),并设置正确的权限确保Nginx能读取:
sudo mv example.com.chained.crt /etc/ssl/certs/ sudo chown root:root /etc/ssl/certs/example.com.chained.crt sudo chmod 644 /etc/ssl/certs/example.com.chained.crt
内容的提问来源于stack exchange,提问作者iamdeed
相关产品推荐
相关产品推荐

