Caddy神奇: http服务免ssl证书改造为https

最近在godaddy上买了个.dev的域名,但是这个后缀的域名只支持https和ssl解析。换句话说解析的时候,会把http请求强制转化为https。如果应用不支持https,则会直接解析失败。

详细介绍见:https://sg.godaddy.com/zh/help/about-dev-domains-32019

自己服务器上有搭建一个code-server作为日常笔记使用,由于自签证书会比较麻烦(比如:ipad上无法导入自签证书,无法使用。)所以选了caddy作为https的代理服务器。

caddy是一个http服务器,和nginx,apache一样,但是有个很厉害的特性,可以0配置支持https,它的基本原理很简单,基于zerossl和let's encrypt,并且自动轮换证书,实现了免手动配置证书的

 

一、安装caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/gpg/gpg.155B6D79CA56EA34.key' | sudo apt-key add -
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/setup/config.deb.txt?distro=debian&version=any-version' | sudo tee -a /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

二、启动code-server,监听在localhost:8080端口上

三、配置caddy,配置文件在/etc/caddy/Caddyfile里

假设域名是code.test.dev直接A记录指向服务器ip,由于test.dev域名只能解析https,这里配置caddy监听在443端口,reverse_proxy指定方向代理,代理到localhost:8080

code.test.dev:443 {
        root * /usr/share/caddy
        reverse_proxy localhost:8080
}

四、启动caddy并加入开机自启

systemctl start caddy
systemctl enable caddy

到这里caddy就配置结束了

接下来直接访问https://code.test.dev,就可以看到code-server。利用这个方式,还可以将其他服务都低配置转换为https

posted @ 2022-05-05 15:36  隐念笎  阅读(2480)  评论(0编辑  收藏  举报