ddns证书
acme官方文档:https://github.com/acmesh-official/acme.sh pve官方文档:https://pve-doc-cn.readthedocs.io/zh-cn/latest/chapter_system_administration/certmgr.html
1. 申请动态域名(省略)
2. 使用acme申请免费的
2.1 使用acme申请证书
1 安装很简单: 国内用户参考https://github.com/acmesh-official/acme.sh/wiki/Install-in-China
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com
2 当前终端,创建 一个 bash 的 alias, 方便你的使用:
alias acme.sh=~/.acme.sh/acme.sh
2.2 使用openssl创建密钥对
- 创建.ssh文件夹(若没有)
- 创建ed25519算法证书
ssh-keygen -t ed25519 -f chensino -C <邮箱>
一直回车
2.3 上传公钥到dynv6
- 登陆dynv6账户生成一个token用于请求dynv6的api:
点击 https://dynv6.com/keys/token/new
- 复制pub公钥到dynv6
点击链接: https://dynv6.com/keys/ssh/new
2.4 执行申请证书
#指定证书的ssh key的绝对路径 :
export KEY="/root/.ssh/chensino"
*我们之前建立的key文件位置: /root/.ssh/chensino
#dynv6的token
export DYNV6_TOKEN="xxxx"
最后使用命令:
acme.sh --issue --dns dns_dynv6 -d chensino.dynv6.net
执行acme.sh --issue --dns dns_dynv6 -d chensino.dynv6.net
有报错,
根据他的提示执行acme.sh --register-account -m 462488588@qq.com
即可
再次执行acme.sh --issue --dns dns_dynv6 -d chensino.dynv6.net
就可以了
证书生成路径:
3.给pve的web管理配置证书
参考:https://blog.51cto.com/picker/5393676
- pve需要pem格式证书,需要把申请的证书转化
#到证书生成的路径下执行
openssl x509 -in chensino.dynv6.net.cer -out chensino.dynv6.net.pem -outform PEM
- 把证书复制到pve
scp chensino.dynv6.net.key root@192.168.1.120:/etc/pve/nodes/chensino
- 把原来的证书pve-ssl.key、pve-ssl.pem备份后,把我们新的证书改成对应的这个名字
mv chensino.dynv6.net.pem pve-ssl.pem
mv chensino.dynv6.net.key pve-ssl.key
- 重启pveproxy
systemctl restart pveproxy
4. 自动续签
这种免费的证书时间很短,acme.sh会帮我们自动创建一个crontab定时任务更新证书
pve的webui界面自带的acme插件
https://gist.github.com/tavinus/15ea64c50ac5fb7cea918e7786c94a95
数据中心——ACME,添加账户chensino
数据中心——ACME,添加质询插件,名字还是chenisno,API数据是dynv6中生成的token,格式如下
到对应的pve节点(我的节点叫chensino)——凭证,添加凭证,质询类型DNS,插件选择之前创建的
pve节点——凭证,选择域名,点击立即预定凭证
注意
若报错找不到了对应的key什么的,需要事先创建好,名字要对应上,比如报错叫dynv6的key没有,那么就要到~/.ssh下生成对应的名字的key,生成方法请参考之前的