背景
近期给一个知名品牌做发券类的H5项目,甲方考虑到运营商的流量劫持会出现骚扰广告,会造成显示问题,故要求使用HTTPS安全域名。
解决思路
前端代码整体在CDN上,需设置CDN的安全域名,用到微信授权及微信分享接口在SLB上,需要设置SLB的安全域名。CDN和SLB都是使用的阿里云产品,想必有成熟的解决方法。
经查询,CDN要为单域名配置SSL证书,SLB要添加HTTPS监听再配置服务器证书,而不必为每一台ECS配置HTTPS证书。
解决方法
CDN配置HTTPS方法
第一步,获取SSL证书。
申请证书的方法查看之前的文章《小程序https域名免费SSL证书申请及Apache安装配置》。
第二步,配置证书。
按 文档 的操作说明,配置证书即可。文档写的很详细,这里不再重复。
SLB配置HTTPS方法
第一步,同样是获取SSL证书。
第二步,配置证书。
在证书管理里面,添加下载的证书,其中证书类型选择“服务器证书”,其他的设置跟CDN配置证书方法是一样的。
第三步,添加HTTPS监听。
按 文档 的步骤,操作即可。这里注意一点,当配置好,访问SLB域名时会出现502错误。是由于 健康检查引起的问题异常,关闭健康检查就能正常访问安全域名了。(目前还不知道如何即开启健康检查又能正常访问域名的方法。)
BTW
1、SLB配置好后出现502的解决方法,已在上面红色标注;
2、阿里云对HTTPS的访问是按次收费的,如果访问量较大,建议购买 静态HTTPS请求数 CDN资源包。
参考链接
CDN的HTTPS安全加速设置:配置HTTPS证书 - CDN - 阿里云
CDN的证书格式说明:证书格式说明 - CDN - 阿里云
SLB添加HTTPS监听:添加HTTPS监听 - 负载均衡 - 阿里云
关于阿里云SLB(负载均衡)配置HTTPS证书一些记录:关于阿里云SLB(负载均衡)配置HTTPS证书一些记录 - 简书
时间分界线:2022.7.9
据上次记录博客有一段时间了,使用工具发生改变,遇到新了问题,这里记录下。现在阿里云ECS使用 宝塔 系统,SLB也变成 传统型负载均衡 CLB(原SLB)。
场景描述
SLB部署SSL证书后,安卓手机 和 电脑Chrome 访问正常,苹果手机 和 Safari 提示 -1017错误。
解决方法
1、修改SLB配置,关闭健康检查。
2、修改SLB监听配置,把443协议的后端服务器端口设为80。
3、修改ECS的代码环境,用 Nginx 代替 Apache。
注意事项
1、 SLB 添加 HTTPS 监听时有两个端口,一个是监听端口,一个是服务器端口,后者一定要设为80端口,因为ECS没有配置443端口。
2、关于ECS的Apache问题,个人分析是由于SLB配置证书是使用的 Nginx,所有ECS也应该用这个。
参考链接
1、云原生 - 负载均衡(SLB)配置 HTTPS 访问设置: 云原生 - 负载均衡(SLB)配置 HTTPS 访问设置-阿里云开发者社区