简介
谷歌浏览器已经把没有使用HTTPS协议的网站全部标记为不安全,为了让浏览器不把我们的网站标记为不安全,为了让访问者能更安心的浏览我们的网站,我们只能为我们的网站开启HTTPS协议支持,由于 Let’s Encrypt 可以为我们提供免费证书使用,我们就可以免费的为我们的网站申请证书,但是由于证书有效期只有3个月,当证书快过期时,我们需要重新续签。为此有不少工具能帮助我们完成自助的申请证书以及续签。但是这仍然需要不少的配置。这时一个名为 Caddy 的跨开台开源软件出现了,Caddy 能自动帮我们申请证书,当证书快过期时自动续签,只需一次配置,后续基本不需要再做其他配置,非常的方便,完全可以代替 Nginx 与 Apache 。
安装
去 Caddy 的 Github 发布页下载对应平台的二进制压缩包
解压安装
tar xf caddy_v1.0.3_linux_amd64.tar.gz
mv caddy /usr/local/bin
caddy -version
配置 Caddy
把如下的配置文件写入名为 Caddyfile
的文件中。
mgxian.dev {
root /data/blog/mgxian
gzip
log ./access.log
}
www.mgxian.dev {
redir https://mgxian.dev{uri}
log ./access.log
}
1-5 为 mgxian.dev 域名的相关配置,指定根目录为 /data/blog/mgxian ,开启 gzip 压缩,并把访问日志记录在当前目录的 access.log 文件中。
7-10 为 www.mgxian.dev 域名的相关配置,表示当访问 www.mgxian.dev 域名的相关资源时,将会自动跳转到 mgxian.dev 域名。
启动 Caddy
启动 Caddy 之后会自动申请 HTTPS 的证书,并自动开启对 HTTP2 协议的支持,启动过程中可能会提示你输入邮箱接受证书相关的提醒。
caddy -conf Caddyfile
注意事项
- 在配置使用 Caddy 之前请确保 DNS 解析配置正常,请把你需要配置的域名解析到你安装配置 Caddy 机器的外网 IP 上。
- 如果需要申请支持通配符的证书,如为
*.mgxian.dev
申请证书,需要使用 DNS Challenge 的方式来申请证书,具体详细文档可参考 DNS Challenge 。 - Caddy 不仅可以作为一个像 Apache 与 Nginx 一样的 Web Server ,也可以配置为反向代理,代理后端 Apache 与 Nginx 等应用。
访问测试
启动完成后,使用 cURL 访问你的网站域名进行测试。
curl -I https://mgxian.dev/
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 64846
Content-Type: text/html; charset=utf-8
Etag: "pwsec41e1a"
Last-Modified: Sun, 25 Aug 2019 09:57:40 GMT
Server: Caddy
Date: Sun, 25 Aug 2019 09:59:27 GMT