你现在还在用HTTP吗,太过时了!
chrome浏览器已经默认所有HTTP浏览器为不安全网站,如下图所示,头条号页面被标记为不安全:
HTTPS的好处不用说,安全,还有逼格!有人说HTTPS性能低,这是谣言!
谁又不想上HTTPS呢,但是上HTTPS,可是一个头疼的事,为啥?
目前SSL证书根据验证级别分为三种类型,即域名型SSL证书,简称DV SSL;企业型SSL证书,简称OV SSL;增强型SSL证书,简称EV SSL。
最便宜的DV证书,一年也得100多,昂贵的EV证书,一年得一万多!
而且,如果要本地测试的话,使用Nginx也好,Tomcat也好,生成和配置证书可不是个轻松活。有好的办法吗?
Caddy
Caddy基于Go语言编写,安装到Linux/Win上无需任何依赖库,只需拷贝一个Caddy的可执行文件就可以开启一个静态的HTTP站点。由于这种轻量小巧静态的特性,特别适合配合一些小型应用使用。Caddy除了可以做一个静态的HTTP服务器之外,还可以像Nginx一样做一个反向代理服务器。虽然性能不比Nginx,但是好处也有不少:
1、配置文件简单,1行就可以搞定一个反向代理服务器
2、安装部署方便,只要拷贝一个文件就可以了
3、如果联网,支持全自动的获得一个Let's Encrypt签发的免费HTTPS证书并自动配置上去,只需把自己的域名写在配置文件里就可以。
4、如果没联网,只需一行就可以签发一个自签名证书,一行升级到HTTPS。
安装配置
https://caddyserver.com/download 点这个链接进入到 caddy 官网的下载界面,网页左侧可以选择平台和插件,如果在 Linux 服务器上使用的话,platform 选择 Linux 64-bit 就可以了,plugins 如果暂时不需要的话,可以不选。然后点击下面的 DOWNLOAD 按钮,就下载到 caddy 了。同理,解压之后用 cp 命令放到 /usr/local/bin/caddy 就完成了安装。
当然,也可以选择windows版本。
Caddy 的配置文件叫做 Caddyfile,Caddy 不强制你把配置文件放到哪个特定文件夹,默认情况下,把 Caddyfile 放到当前目录就可以跑起来了。
比如新建一个文件叫做Caddyfile:
localhost:8888gzipbrowse
将可执行文件caddy或caddy.exe及配置文件Caddyfile放在随便一个目录里,命令行运行可执行文件,然后在浏览器里打开 http://localhost:8888 发现 caddy 已经启动了一个文件服务器。当临时需要一个 fileserver 的时候(比如共享文件),使用 caddy 会很方便。
场景一:公网服务器
假定现在公网上有一个服务器,已经有了域名,并且该域名就指向该服务器。想免费升级到HTTPS。
建立一个文件,名字叫Caddyfile,按照下面这样写:
www.xxxx.comgzipproxy / localhost:8080
第一行填写域名,有了这个域名之后,Caddy就会向Let's Encrypt发送这个域名,并且进行验证。,然后Caddy就会自动申请HTTPS证书,开启80和443端口并进行侦听。
注意:只要写上了域名那么就默认开启了HTTPS服务,无需指定Caddy也会监听到443和80端口上。
场景二:内网机器
无需连到公网,只是想利用HTTPS来避免明文的传送或者测试用,这时可以使用Caddy的自签名功能,Caddy自己制作CA证书,然后用这个CA证书签发相应的公钥和私钥。这样虽然使用浏览器会报错证书不够信任,但是达到了HTTPS的效果。
www.xxx.comgziptls self_signedproxy / localhost:8080
第一行的域名可以随便写,但是不要写localhost,关键一句就在于 tls self_signed。有了这一行便会产生自签名证书。
注意如果使用了自签名,那么在启动Caddy要手动指定端口到443
caddy -port 443
是不是比Nginx简单了好多倍?