问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

如何把一个web集群由HTTP转换为HTTPS

发布网友 发布时间:2022-05-01 23:53

我来回答

2个回答

热心网友 时间:2022-06-25 07:03

1、概述

如果你的应用使用SSL证书,则需要决定如何在负载均衡器上使用它们。

单服务器的简单配置通常是考虑客户端SSL连接如何被接收请求的服务器解码。由于负载均衡器处在客户端和更多服务器之间,SSL连接解码就成了需要关注的焦点。

2、有两种主要的策略

第一种是我们选择的模式,在haproxy这里设定SSL,这样我们可以继续使用七层负载均衡。SSL连接终止在负载均衡器haproxy ----->解码SSL连接并发送非加密连接到后端应用tomcat,这意味着负载均衡器负责解码SSL连接,这与SSL穿透相反,它是直接向代理服务器发送SSL连接的。

第二种使用SSL穿透,SSL连接在每个tomcat服务器终止,将CPU负载都分散到tomcat服务器。然而,这样做会让你失去增加或修改HTTP报头的能力,因为连接只是简单地从负载均衡器路由到tomcat服务器,这意味着应用服务器会失去获取 X-Forwarded-* 报头的能力,这个报头包含了客户端IP地址、端口和使用的协议。

有两种策略的组合做法,那就是第三种,SSL连接在负载均衡器处终止,按需求调整,然后作为新的SSL连接代理到后台服务器。这可能会提供最大的安全性和发送客户端信息的能力。这样做的代价是更多的CPU能耗和稍复杂一点的配置。

选择哪个策略取决于你及应用的需求。SSL终端为我所见过最典型的策略,但SSL穿透可能会更安全。

3、使用HAProxy作为SSL终端

首先,我们将介绍最典型的解决方案 - SSL 终端。正如前面提到的,我们需要让负载均衡器处理SSL连接。这就意味着要将SSL证书放在负载均衡服务器上。

记住,在生产环境里使用(而不是自签名)的SSL证书,是不会需要你自己来生成或签名 - 你只需要创建证书签名请求 (csr) 并把它交给那个你向它购买证书的机构即可。

首先, 我们创建一份自签名的证书作为示范,并在本地使用同一份证书。

openssl genrsa -out /etc/haproxy/wzlinux.key 2048
openssl req -new -key /etc/haproxy/wzlinux.key -out /etc/haproxy/wzlinux.csr

> Country Name (2 letter code) [AU]:CN
> State or Province Name (full name) [Some-State]:Shanghai
> Locality Name (eg, city) []:Shanghai
> Organization Name (eg, company) [Internet Widgits Pty Ltd]:wzlinux
> Organizational Unit Name (eg, section) []:
> Common Name (e.g. server FQDN or YOUR name) []:www.wzlinux.com
> Email Address []:
> Please enter the following 'extra' attributes to be sent with your certificate request
> A challenge password []:
> An optional company name []:

cd /etc/haproxy
openssl x509 -req -days 3655 -in wzlinux.csr -signkey wzlinux.key -out wzlinux.crt
这就生成了wzlinux.csr,wzlinux.key和wzlinux.crt文件了。

接着,在创建了证书之后,我们需要创建pem文件。pem文件本质上只是将证书、密钥及证书认证中心证书(可有可无)拼接成一个文件。在我们的例子中,我们只是简单地将证书及密钥文件并以这个顺序拼接在一样来创建wzlinux.pem 文件。这是HAProxy读取SSL证书首选的方式。

cat wzlinux.crt wzlinux.key | tee wzlinux.pem
当购买真正的证书 时,你不一定会获取拼接后的文件。你可以要自己拼接它们。然而,很多机构也会提供一份拼接好的文件给你。如果你没有获取到拼接后的文件,则它可能不是一个 pem 文件,而是 bundle、cert、cert、key文件或一些相同概念但名称类似的文件。

无论如何,只要我们得到了HAProxy使用的pem文件,我们只需经过简单配置就是可以处理SSL连接了。

下面我们将要配置haproxy来安装SSL证书,配置文件如下

#---------------------------------------------------------------------
# Example configuration for a possible web application. See the
# full configuration options online.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
# to have these messages end up in /var/log/haproxy.log you will
# need to:
#
# 1) configure syslog to accept network log events. This is done
# by adding the '-r' option to the SYSLOGD_OPTIONS in
# /etc/sysconfig/syslog
#
# 2) configure local2 events to go to the /var/log/haproxy.log
# file. A line like the following can be added to
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
log 127.0.0.1 local2 warning
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 400000
user haproxy
group haproxy
daemon
tune.ssl.default-dh-param 2048
# nbproc 3
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
option httpclose
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
stats enable
stats hide-version
stats uri /haproxy?status
stats realm Haproxy\ Statistics
stats auth admin:asd870719
# stats admin if TRUE
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
#frontend main *:5000
# acl url_static path_beg -i /static /images /javascript /stylesheets
# acl url_static path_end -i .jpg .gif .png .css .js
# use_backend static if url_static
# default_backend app
frontend wzlinux_ssl
bind *:80
bind *:443 ssl crt /etc/haproxy/wzlinux.pem
mode http
default_backend wzlinux
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
# balance roundrobin
# server static 127.0.0.1:4331 check
backend wzlinux
mode http
balance roundrobin
option forwardfor
# option httpchk HEAD / HTTP/1.1\r\nHost:localhost
server wzlinux01 10.0.0.9:8080 check inter 15000 rise 2 fall 4
server wzlinux02 10.0.0.9:8081 check inter 15000 rise 2 fall 4
server wzlinux03 10.0.0.9:8082 check inter 15000 rise 2 fall 4
server wzlinux04 10.0.0.9:8083 check inter 15000 rise 2 fall 4
server wzlinux05 10.0.0.9:8084 check inter 15000 rise 2 fall 4
server wzlinux06 10.0.0.9:8085 check inter 15000 rise 2 fall 4
server wzlinux07 10.0.0.9:8086 check inter 15000 rise 2 fall 4
# http-request set-header X-Forwarded-Port %[dst_port]
# http-request add-header X-Forwarded-Proto https if { ssl_fc }
因为 SSL 连接在负载均衡器上终止了,我们依然来发送正常的 HTTP 请求到后台服务器。

只接受SSL连接

如果你想让网站只接受SSL连接,你可以添加向前端配置加上redirect导向:

frontend wzlinux_ssl
bind *:80
bind *:443 ssl crt /etc/haproxy/wzlinux.pem
redirect scheme https if !{ ssl_fc }
mode http
default_backend wzlinux
上面,我们添加了 redirect 导向,如果连接不是通过SSL连接的,它将http重定向到https。

4、使用HAProxy实现SSL穿透

使用SSL穿透,我们将让后台服务器处理SSL连接,而非负载均衡器来处理。

负载均衡器的工作就只是简单地将请求转发到配置好的后台服务器。因为连接还保持加密状态,HAProxy只能将它转发给其他服务器,其他事情就没法做了。

在这个配置中,我们需要在前端和后台配置中同时使用TCP模式而不是HTTP模式。HAProxy只会把连接当作信息流来转发到其他服务器,而不会使用在HTTP请求上才能使用的功能。

首先,我们调整一下前端配置:

frontend wzlinux_ssl
bind *:80
bind *:443
option tcplog
mode tcp
default_backend wzlinux
这里依然同时绑定80和443端口,以保证正常的HTTP连接和SSL连接都能工作。

正如上述提到的,转发一个安全连接而服务器而不作任何解码,我们需要使用TCP模式(mode tcp)。这也意味着我们需要设置tcp日志而不是默认的http日志(option tcplog)。

接着,我们要调整后台end配置。注意,我们还要将这个更改成TCP模式,并删除一些directives以避免因为修改/增加HTTP报头功能所带来的冲突:

backend wzlinux
mode tcp
balance roundrobin
option ssl-hello-chk
server wzlinux01 10.0.0.9:8080 check inter 15000 rise 2 fall 4
server wzlinux02 10.0.0.9:8081 check inter 15000 rise 2 fall 4
server wzlinux03 10.0.0.9:8082 check inter 15000 rise 2 fall 4
server wzlinux04 10.0.0.9:8083 check inter 15000 rise 2 fall 4
server wzlinux05 10.0.0.9:8084 check inter 15000 rise 2 fall 4
server wzlinux06 10.0.0.9:8085 check inter 15000 rise 2 fall 4
server wzlinux07 10.0.0.9:8086 check inter 15000 rise 2 fall 4
正如你所看到的,这里设置成了mode tcp - 前端和后台配置都需要设置成这个模式。

我们还删除了option forwardfor和http-request选项 - 这些不能用于TCP模式,而且我们也不能向已加密的请求添加报头,还有一些前面的默认配置也删去关于http的配置,这里不再演示。

为了检查正确与否,我们可以使用ssl-hello-chk来检查连接及它处理SSL(特别是SSLv3)连接的能力。

在这个例子中,我虚构了两个接受SSL证书的后台服务器。如果你有阅读过 edition SSL certificates ,你会看到如何将它们集成到 Apache 或 Nginx 来创建一个网络服务器后台,以处理SSL通信。使用SSL 穿越,不需要给HAProxy创建或使用SSL证书。后台服务器都能够处理SSL连接,如同只有一台服务器且没有使用负载均衡器那样。

热心网友 时间:2022-06-25 07:03

技术方面的话我解决不了,但是https是因为http增加了一个SSL证书,申请一个SSL证书就可以由HTTP转换为HTTPS.深圳 EVTrust
如何把http变成https

首先,确保数据加密,获取SSL证书是转换的基础。这需要明确您的网站运行服务器类型,以及是通过托管服务商还是自建服务器。一旦确定,就需要获取相应的SSL证书。其次,安装SSL证书是关键。对于托管服务商用户,可以利用自动安装工具轻松完成;对于自建服务器用户,需手动导入证书文件,并配置服务器启用SSL功能。...

静态ip - StormProxies

"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球200+的国家与地区,超7000万住宅IP。3、高可靠性,24小时稳定运行,平均99.99%的可用率;4、性价比更高,便宜好用,单个IP也能享受最优价格,没有额外费用;5、易于使用,支持HTTP/HTTPS/SOCKS5协议,提供多种API参数,网络集成更快捷;6、客服全天在线为您排忧解难,并可根据您的业务需求制定更合适的代理…StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...

如何把一个web集群由HTTP转换为HTTPS

# http-request add-header X-Forwarded-Proto https if { ssl_fc }因为SSL 连接在负载均衡器上终止了,我们依然来发送正常的 HTTP 请求到后台服务器。只接受SSL连接如果你想让网站只接受SSL连接,你可以添加向前端配置加上redirect导向:frontend wzlinux_ssl bind *:80 bind *:443 ssl crt /etc/haproxy/wzlin...

怎样把网站从http转换成https

http转换成https需要申请SSL证书,具体的申请流程如下:第一步,生成并提交CSR(证书签署请求)文件CSR文件一般都可以通过在线生成(或服务器上生成),申请人在制作的同时系统会产生两个秘钥,公钥CSR和密钥KEY。选择了SSL证书申请之后,提交订单并将制作生成的CSR文件一起提交到证书所在的CA颁发机构。第二...

一步步教你把HTTP网站免费转成HTTPS网站

(4)选择“免费型DV SSL”,并点击立即购买。购买成功后跳转到“我的证书”页面:(5)此时的状态处于“待完成”,点击右侧“补全”按钮,补全域名信息:(6)按照流程单击“下一步”,填写个人信息,上传相关信息等。最后跳回“我的证书”页面:(7)此时的状态变成了“待审核”。点击右侧“进度”按钮,进...

网站从http转换成https怎么弄 网站从http转换成https方法介绍

1、确定需要HTTPS的域名,当然这个域名是独立的,可以正常解析。2、拥有一台独立服务器,通常适应的是云服务器(虚拟主机通常都不支持的)。3、网站程序源码,这个很重要不是所有源码都支持HTTPS,不过通常主流都是支持的,不支持的也是稍微修改一下就可以了。4、关键的一步HTTPS是要办理认证的,这一点...

web项目http如何改成https

您好!实现HTTPS很简单,主要注册SSL证书安装到服务器,当然最好是独立服务器(云服务器)才可以实现安装证书。一、确定需要域名(网址),登陆淘宝:Gworg 注册SSL证书。二、按照客服的要求完成域名验证,通常是DNS解析认证,比较简单。三、获得SSL证书,将SSL证书安装到服务器,就可以实现HTTPS了。

http链接怎么转https

http链接转https方法:确定自己的网站地址然后将网址给Gworg做一下SSL认证。认证可以选择直接认证或者自助申请认证,一般提交认证几分钟就可以拿到数字证书。然后就是去网站主机里面上传数字证书文件,如果不会也可以让Gworg一次性完成上传,完成后网站就改成HTTPS访问了。网站建好后默认都是http网站,这种网站...

在项目中如何把http的请求换成https

步骤一、确认已经配置好SSL证书 步骤二、修改主机头值,可以随便输入 步骤三、新建一个站点,主机头填写为您的域名。步骤四、将路径选择为您的网站目录,设置访问权限为只读即可。步骤五、创建好后站点后,选择该站点,点击鼠标右键–“属性”–“主目录”,按照下图设置,选中“重定向到URL”,并勾选“...

网站从http转换成https怎么弄?

那么网站怎样从http转换成https呢?1、申请SSL证书 网站要实现https加密,首先要申请SSL证书,申请SSL证书的步骤如下:CSR文件制作:申请SSL证书之前,需要制作CSR文件,可在沃通官网CSR在线生成工具中生成CSR文件,并妥善保存生成好的CSR和Key文件,然后将CSR提供给SSL证书供应商来申请SSL证书。CA认证证书申请...

如何将http改成https

您好!一、首先在独立的服务器(云服务器、VPS),搭建好普通的网站,并且这个网站可以访问。二、登陆淘宝搜索关键字:Gworg 获取SSL证书。三、拿到SSL证书安装到服务器就实现HTTPS网站了。注:虚拟主机通常都不支持。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
干杯歌曲介绍 辣椒酱的做法教程 农历4月11日是什么星座生男生女 农历4月11日是什么星座? 索尼LT22I有藏文字体么? 索尼lt22i如何将繁体字变为简体 索尼lt22i显示怎样转换成中文的 索尼LT22i 文字不小心设置成法语了 看不懂 怎么设置回中文 求步骤呀... 贵州有哪些称得上“豪宅”的房子 索尼LT22I有藏文字体么? WMO世界奥林匹克数学竞赛无锡区找谁报名? 老香橼(佛手瓜)制作技艺的历史记载 关于精神的格言 老香橼(佛手瓜)制作技艺的介绍 梦幻西游WZ加点法 99年的事件到底是什么事件? 学生参加世界奥林匹克数学竞赛世界总决赛(wmo)有补助费用吗? 盘点最新二战电影排名前十,【免费高清】在线观看百度网盘资源 ACCESS数据库被放入代码 老香橼(佛手瓜)制作技艺的加工方法 我是99年的 性格如何 wmo世奥赛有含金量吗?请问WMO含金量高吗? 世界少年奥林匹克数学竞赛与世界奥林匹克数学竞赛的区别 佛手用白糖腌制成密还能吃吗 0到99传递的是什么? 男生请进!! 99是什么意思啊 linux系统中怎样启动2个apache服务 世界奥林匹克数学竞赛WMO是世界奥数组委会直接委托的吗? 刚申请的,为什么设置朋友圈只能看三天的权限设置不了?设置上也显示三天以上的怎么回事? 世界奥林匹克数学竞赛与世界少年奥林匹克数学竞赛的区别 老香橼(佛手瓜)制作技艺的文化保护 占领华尔街运动中99%是什么意思 世界奥林匹克数学竞赛今年总决赛报名时间和地点在哪里? 老香橼(佛手瓜)制作技艺的产地简介 中国航天人说99分也是不及格,这是为什么? 济南市中区有哪些初中啊 佛手老香橼放久会变质吗 梦幻西游WZ怎么玩? 爱迪生名言中,天才是99%的汗水加1%的天赋后面的两句是什么 有没有什么很好的动作片给推荐一下,嘿嘿。。。谢谢 血压99/73会不会无精神? 求DRAMA ロッセリーニ家の息子1-3系列 +翻译 99我啊!我爸爸是什么程度的精神分裂?该怎样治疗? 我要下载这首歌 uniqlo算奢侈品吗? 芦荟胶(护肤系列产品)都有什么用处 成语什么什么不平? 成语大全 四字成语()()不平 什么什么不平四字词语
  • 焦点

最新推荐

猜你喜欢

热门推荐