从2017年起,苹果ios以及微信小程序都陆续要求请求连接request地址是使用HTTPS协议的。所以在项目开发阶段就要考虑解决https的问题,同时这也是为项目实际安全所考虑。最近我也是在折腾项目的https认证,学习到了很多,就写一下实际操作中遇到的问题和要注意的一些地方。
名词解释
https:http超文本传输协议是使用明文传输的,而https则为http+TLS/SSL,是具有一定安全性的加密传输协议。http使用80端口,而https使用443端口。
SSL:安全套接字层,位于TCP/IP与其他应用层协议之间,确保web服务器和浏览器之间信息传输的安全性。根据审核的严格程度分为DV SSL、OV SSL、EV SSL。而本文讲的就是DV SSL证书的申请和验证。
A记录和CNAME:A记录就是指定IP地址与域名的映射关系,而CNAME则是别名记录,他可以允许为IP地址设置别名,使其同时对应多个域名。
CDN:内容分发网络,传统访问方式是通过域名访问解析IP地址,获取网站资源,而这样的访问方式面对大量同时访问的情况,资源获取速度会变慢。而CDN则是通过将一条指定的CNAME记录解析到CDN服务器的IP地址,再由CDN缓存服务器通过DNS解析获取到源站的IP地址,进而使服务器回显客户端请求。CDN缓存服务器会先缓存网站静态资源,并将其分发到多个网络节点上,这样可以在大量访问时缓解服务器压力,可以使用户在较短时间内获取到网站资源。
加速域名:是指你要进行CDN加速的一条CNAME别名记录。
源站域名:是指你的服务器资源所在域名,也就是A记录对应的域名,他与加速域名不能相同,因为CNAME对应A记录域名,那么就是指定加速域名访问源站,那么CDN就没有起到作用了。
申请SSL证书并验证
首先注册七牛云并先实名认证,七牛云支持通过支付宝实名认证,所以还算快。
有了账号以后,就可以在主页点击进入SSL证书服务页面。
点击购买证书里面就有免费的DV证书可以申请了,而申请过之后,首先需要在证书管理页面进行信息的补全。补全之后订单状态会改为待确认状态,这里不是要等七牛云确认,而是要手动验证该域名是否为你所有。
下面为补全信息页面
订单状态改为待确认,点击右侧的详情页面可以获取到TXT记录值,根据教程进行验证
这里有一点要注意,那就是域名所有权的验证方式的选择。因为DV证书认证简单,只需要验证源站域名为申请人所有就可以。这里七牛云提供了两种验证方式,一个是DNS验证,一个是文件验证。
官网给出了两种验证方法的教程:https://developer.qiniu.com/ssl/manual/3667/ssl-certificate-of-free-dns-validation-guide
值得注意的是,文件验证方法中待验证域名一定要是源站域名,不然无法访问验证txt文件会导致验证不成功。验证成功后就可以等待官网签发证书了,一般是在一个工作日以内就可以签发下来。
CDN域名加速设置
七牛云提供了另外一个服务那就是CDN融合加速。想要使用这个功能就需要先给自己的账户充至少10元钱,保证账户余额在10元以上才可以新建加速域名。
1.加速域名那一栏需要填写你要指定的CNAME。
2.有了ssl证书之后,就可以在通信协议栏选择HTTPS协议并指定要使用的证书,就是刚刚申请签发的证书了。
3.回源HOST是指CDN服务器通过DNS解析访问资源的目的地,所以最好使用源站域名,后面的域名测试也是测试回源HOST访问资源而不是源站域名。
4.源站域名填写A记录域名,然后在源站测试栏填写一个你网站静态资源的URL(比如URL),而源站测试也是为了测试CDN缓冲服务器是否可以通过回源HOST访问到想要缓存的静态资源。这里使用js,css,png、jpg文件都是可以的。
5.最后确认就可以使用CDN域名加速服务了,最后需要在域名服务商哪里更改CNAME配置,具体教程如下 https://developer.qiniu.com/fusion/kb/1322/how-to-configure-cname-domain-name