























地址在这,先放上来 infinity-server/dosk_dns
不过先说好,就是个玩具,有其他需求或
bug自己酌情修改或者提pr给我
简单来说,就是一个兼容 sslip.io 和 nip.io 的 dns 服务,这俩东西还是很有用的,但是一方面申请 ssl 证书比较局限,二来也是自己比较感兴趣可以学习学习,就手撕了一个实现
无非就是根据域名信息去解出来 IPv4/IPv6 的地址并返回
有个坑,双栈一些场景会优先走 IPv6(AAAA) 但是可能地址只能解出来 IPv4 比如 127-0-0-1.xxx.yyy,这样就需要返回 SOA 记录,那么客户端就会走 IPv4(A) 记录
CAA 记录很重要,因为这是申请证书的时候一些 CA 回去验证的,代码里我就写死了几个
找个公网服务器搭建起来这玩意(或者找别人/朋友搭好的,因为需要得到授权信息),npm install && node dns.js,输出的选项里的东西都是可以自己改的(比如 --dnsAddress '127.0.0.1' 就能改监听的地址),反正记住你的 auth 和 token 两个选项后面要用,这里假定服务器为 dns.yourdomain.com,这个就是你自己搭建的 dns 服务器啦以后
这步才是正式开始,比如你有个域名(子域名也行,反正都行,用做这个就不能干别的了) wild.yourdomain.com,更改 wild.yourdomain.com 的 ns 记录到 dns.yourdomain.com
现在就可以用诸如类似 127-0-0-1.wild.yourdomain.com 这样用了,如果你仅仅是想到这步那就可以结束了,如果想申请个证书请往下看
把代码库里的 dosk_dns.sh 扔到你的 acme.sh 安装目录里(~/.acme.sh/dosk_dns.sh),然后像其他 dns 一样配置几个环境变量:
# 配置你的 DNS 服务器地址,注意结尾没有 /
export Dosk_Server='http://dns.yourdomain.com'
# 配置你的 token 和 auth
export Dosk_Auth=你的auth
export Dosk_Token=你的token
--dns dosk_dns 选项,其他选项你酌情自己更改:acme.sh --issue --dns dosk_dns -d wild.yourdomain.com -d *.wild.yourdomain.com
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。