dynv6这家动态域名商提供的域名功能较多,包括TXT,CNAME等记录.更重要的是,它支持dnsapi的方法申请证书,可以解决动态IP申请let’s encrypt(acme)证书的痛点.
典型的应用场景就是家用宽带的动态ip申请域名证书,如在外访问家里路由器端口映射的服务.本文就是一个利用dynv6的api,申请证书的教程.
一.前期准备
1.1 Todo
1.2 操作系统准备
有些系统并没有安装OpenSSL组件,我们安装上:
Ubuntu & Debian:
sudo apt update sudo apt install openssl
CentOS:
yum install openssl
OpenWrt:
opkg update opkg install openssl
二.开始部署
2.1. 注册dynv6并申请域名
2.1.1. 注册dynv6
…(略)…
2.1.2. 申请域名
首先申请一个域名,选喜欢的:
2.2. acme.sh安装教程
2.2.1 安装很简单, 一个命令:
curl https://get.acme.sh | sh
2.2.2 创建 一个 bash 的 alias, 方便你的使用:
alias acme.sh=~/.acme.sh/acme.sh
*更详细的安装教程请点击 >>>这里<<<
2.3. 使用openssl创建密钥对
下面我们以ssh-ed25519为例:
2.3.1 创建.ssh文件夹
mkdir -p ~/.ssh && cd ~/.ssh
2.3.2 创建ed25519算法证书
ssh-keygen -t ed25519 -f my_github_ed25519 -C "me@github"
密码两次回车留空,log如下:
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in my_github_ed25519.
Your public key has been saved in my_github_ed25519.pub.
The key fingerprint is:
SHA256:fT01qBlHOkQh1XhocBtaWQIyvQ6Mob/sZ1O5lQ7RR6M me@github
The key’s randomart image is:
+–[ED25519 256]–+
| o.+=XBo |
| . o.*=*=. |
| . + .+=+o…|
| . . o + E*o ..|
| . S +o+ o |
| . = + . |
| . . . = |
| o + . . |
| ..o . |
+—-[SHA256]—–+
查看生成的证书命令:
ls ~/.ssh/
打印:
my_github_ed25519 my_github_ed25519.pub
查看公钥内容命令(下面会用到):
cat my_github_ed25519.pub
打印结果:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFqsk8b5o1M6UnxmsOZB5xBWi5QqJ0vfgz+700J8hUf1 me@github
2.4 上传公钥到dynv6
2.4.1 创建HTTP令牌
登陆dynv6账户:
点击 https://dynv6.com/keys/token/new
安装下图操作:
查看新建的结果:
2.4.2 复制pub公钥到dynv6
点击链接: https://dynv6.com/keys/ssh/new
2.5 执行申请证书
指定证书的ssh key的绝对路径 :
export KEY="/root/.ssh/my_github_ed25519"
*我们之前建立的key文件位置: /root/.ssh/my_github_ed25519
export DYNV6_TOKEN="rPSc75_yZZbkZyfWz8S3qAys-Bg94m"
*我们在2.4.1步骤里申请的令牌:rPSc75_yZZbkZyfWz8S3qAys-Bg94m
最后使用命令:
acme.sh --issue --dns dns_dynv6 -d example.dynv6.net
*更详细的安装教程请点击 >>>这里<<<