SLB如何强制使用https,如果用户http进来的,如何也强制变成https呢
ReSLB如何强制使用https,如果用户http进来的,如何也强制变成https呢
感谢5楼的帖子。
针对 Apache 后端,如下配置成功。
一、后端 Apache:
开 2 个虚拟主机,一个是 80 端口,一个是 4430。Apache 不必配置 SSL。
1. 修改 httpd.conf ,添加端口:
NameVirtualHost *:80Listen 80NameVirtualHost *:4430Listen 4430
2. 虚拟主机配置文件内容如下(一个文件中设置了两个 VirtualHost):
ServerAdmin webmaster@localhost RewriteEngine on RewriteRule ^/(.*)$ https://www.domain.com%{REQUEST_URI} [L,R=301] …… ……
二、SLB配置(证书要配好):
80端口监听后端80端口。注意:在设置的第二步,【不要】开启健康检查!否则会报错,认为后端80端口不正常,从而无法正常使用。
443端口监听后端4430端口。(可以开启健康检查。)
这样用户访问的流程是这样的:
1.如果是 https 的请求直接由 443 端口转到后端我的真实网站 4430 端口获取内容,SSL 数据加密的任务交给 SLB 处理。
2.如果是 http 的请求从SLB的 80 端口转至后端的 80 端口,由 Apache 重写成 https URL,转至 SLB 的 443 端口,对应流程1。
这样不管用户用 http还是 https 最终的请求都是 https 的请求。
三、防火墙把 4430 端口打开即可。
赞0
踩0