使用Caddy在非443端口申请SSL证书
Caddy
众所周知,Caddy是一个用Go实现的web服务器
(虽然我只是拿来当nginx用)
而Caddy有一个重要的特性
就是会自动帮你申请SSL证书
当符合下面一些合理的标准时,Caddy会自动为所有站点启用HTTPS:
- 主机名
- 不为空
- 不是localhost
- 不是一个IP地址
- 不超过一个通配符(*)
- 通配符必须是最左边的标签
- 没有显式指定端口为80
- 没有显式指定使用http协议
- TLS没有在站点的定义中被关闭
- 不是你自己提供的证书和密钥
- Caddy能够绑定到端口80和443(除非使用DNS验证)
非443端口
众所周知,https的默认端口是443
那如果我准备用别的端口呢?
caddy提供了各种dns验证的模块
All Modules
在这里找到相应的dns提供商
大部分都有,没有就用lego_deprecated
我的在dnspod,所以选择dns.providers.dnspod
安装module
首先安装好caddy
1 | sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https |
然后安装module
1 | sudo caddy add-package github.com/caddy-dns/dnspod |
获取appid和token
登陆dnspod,点击右上角头像,选择API密钥
选择DNSPod Token
创建一个密钥,记下id和token
Caddyfile
编辑 /etc/Caddyfile
在开头写上
1 | { |
用于指定端口
然后创建一个站点,加入一个tls,同时填上appid和token
1 | test.sszsj.cc { |
启动caddy
执行命令
1 | caddy start --config /etc/caddy/Caddyfile |
理论上应该能在控制台看到申请证书的过程
这时候https访问2000端口,应该就能正常看到页面了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 鼠鼠在碎觉!
评论
WalineGitalk