如何简单的给静态博客网站用上HTTPS

1,506 阅读2分钟

简介

谷歌浏览器已经把没有使用HTTPS协议的网站全部标记为不安全,为了让浏览器不把我们的网站标记为不安全,为了让访问者能更安心的浏览我们的网站,我们只能为我们的网站开启HTTPS协议支持,由于 Let’s Encrypt 可以为我们提供免费证书使用,我们就可以免费的为我们的网站申请证书,但是由于证书有效期只有3个月,当证书快过期时,我们需要重新续签。为此有不少工具能帮助我们完成自助的申请证书以及续签。但是这仍然需要不少的配置。这时一个名为 Caddy 的跨开台开源软件出现了,Caddy 能自动帮我们申请证书,当证书快过期时自动续签,只需一次配置,后续基本不需要再做其他配置,非常的方便,完全可以代替 Nginx 与 Apache 。

安装

去 Caddy 的 Github 发布页下载对应平台的二进制压缩包

github.com/caddyserver…

解压安装

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

注意事项

  1. 在配置使用 Caddy 之前请确保 DNS 解析配置正常,请把你需要配置的域名解析到你安装配置 Caddy 机器的外网 IP 上。
  2. 如果需要申请支持通配符的证书,如为 *.mgxian.dev 申请证书,需要使用 DNS Challenge 的方式来申请证书,具体详细文档可参考 DNS Challenge
  3. 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

参考文档