Q‘OT

阿里云负载均衡设置 HTTPS 及 HTTP 跳转 HTTPS

嗯。。。我安全意识一向不重。哈哈哈哈。要不是微信小程序需要 HTTPS 这玩意,我真没想过要给站点加这个。

然后坑来了,以下慢慢说。

因为公司的业务基本都放在阿里云上,而且由于之前的几次大活动,上了负载均衡。这次其实主要是被微信小程序触发的去做这个事。刚好顺便做个测试。

申请证书

阿里云上有免费的证书,只支持一个域名,这里有个麻烦,后面说。具体申请去阿里云看就行了。

证书配置

如果你是在阿里云上申请或买的证书,那么在生成的时候选择系统生成 CSR,然后下载证书的时候选择其他,下载。下载下来后有有很多个文件,复制进去的是证书内容对应 21*****10.pem ,私钥对应的是 21*****10.key 就是那一串数字的东西。其他不用管。

阿里云负载均衡(SLB)上的设置

slb1

这里注意了,坑一个,按照阿里云的文档设置的话,前端协议/端口为 HTTPS:443,后端协议/端口为 80,这个时候如果要转发,还要再添加一个端口。

我的方法是创建两个,前端协议/端口 HTTPS:443 对应后端协议/端口 HTTP:443,前端协议/端口 HTTP:80 对应后端协议/端口 HTTP:80

健康检查的端口都设置成默认的 80 就好了。

后端 nginx 设置

在配置文件里将 443 和 80 设置成不同的组,大致如下:

slb2

这样设置,在对应后端服务器有多个子站点时,能够通过配置文件配置站点是否是 HTTPS,并将 HTTP 进行强制跳转,如果没有开启,那么只要把 80 那个组删除,把 443 那个组改成 80,就会通过 80 端口访问了。

后端 APACHE 配置

这个。。。我线上生产环境的是 APACHE,但是目前没有测试,回头测试配置了再来吧。

说点题外话,开始我想的很天真,以为一个 SLB 能够对应多个证书,结果,在添加监听端口的时候卡住了。据说可以通过设置不同端口来解决,但是那样估计也不适合网站用吧?或者做跳转?反正我没有试,后续如果真的所有站点都需要开的话,估计为了省事我会去买一个通配符或支持多域的证书。。。证书好贵。。。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注