通过ACME自动更新飞牛OS导入的证书

发表于:2024-11-28 14:04:30 技术整活 338

<br /> <br />

在启动DDNS之后,自定义域名通过https访问时,总会提示证书不可信,需要自己导入对应的域名证书才能避免浏览器报错。但是免费的域名有效期非常短,只有90天,需要频繁更换。

因此,我们可以利用acme.sh实现对证书的自动更新。

  1. 开启SSH登录,并通过SSH登录到服务器
  2. 安装acme.sh
# email是用来接收证书过期通知的邮箱
curl https://get.acme.sh | sh -s email=my@example.com
# 配置acme.sh执行路径
export PATH=$PATH:$HOME/.acme.sh
# [可选]默认CA切换为Let's Encrypt
acme.sh --set-default-ca --server letsencrypt

  1. 申请证书 由于ACME HTTP方式需要监听80端口,一般家庭宽带并不开放80端口,因此我们需要通过DNS方式验证域名所有权。根据自己域名的权威服务器设置对应的环境变量,这里以dnspod为例。 全部dnsapi可以参考这里:
export DP_Id=xxxx
export DP_Key=xxxxxxxx
acme.sh --issue --dns dns_dp -d example.com

  1. 查看证书安装位置 需要先在设置-安全性中上传新的证书,上传完成后,可以通过以下命令查看证书存放目录
cat /usr/trim/etc/network_gateway_cert.conf | jq .

  1. 配置免密sudo 因为部署证书需要重启nginx,需要root权限,因此需要配置免密sudo
sudo visudo

在文件最后一行增加以下内容,需要将username替换成自己的用户名

username ALL=(ALL) NOPASSWD: NOPASSWD: ALL
  1. 部署证书&重启nginx 需要将 /cert/path/key/path替换成第四步查到的对应文件路径
acme.sh --install-cert -d example.com \
        --fullchain-file /cert/path --key-file /key/path \
        --reloadcmd "sudo systemctl reload trim_nginx.service"

收藏
送赞 2
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

发表回复

评论列表(2)

大佬什么时候发一下用CERTD的教程啊
2024-12-4 17:18:13 回复
让我抽空研究一下哈,其实原理应该差不多,只要找到对应路径,替换一下就行了  详情 回复
前天 16:04
让我抽空研究一下哈,其实原理应该差不多,只要找到对应路径,替换一下就行了
前天 16:04 回复