网站首页 > 技术教程 正文
本教程将帮助你了解如何在HAproxy负载均衡器上设置ssl-https终端,以保护Web服务器的安全。HA代理是一个广泛使用的开源HTTP负载平衡器和代理解决方案,它通过在多个服务器上分配工作负载来提高Web服务器的性能和可靠性。通过这样做,它提供了服务和应用程序的高可用性。
安全套接字层(SSL)
安全套接字层(SSL)是一种标准的安全技术,用于在服务器和客户端--通常是网络服务器(网站)和浏览器,或邮件服务器和邮件客户端(如Outlook)之间建立一个加密链接。它比TLS(即传输层安全)更广为人知,后者是SSL的后续技术。
SSL的图解
SSL允许信用卡号码、社会安全号码和登录凭证等敏感信息安全地传输。通常情况下,在浏览器和网络服务器之间发送的数据是以纯文本形式发送的--使你容易被窃听。如果攻击者能够拦截在浏览器和网络服务器之间发送的所有数据,他们就可以看到并使用这些信息。
更具体地说,SSL是一种安全协议。协议描述了应该如何使用算法。在这种情况下,SSL协议决定了链接和传输的数据的加密变量。
超文本传输协议安全(https)
如果你看到https,网络服务器和你正在使用的移动设备上的浏览器之间的会话是加密的。你可以通过查看浏览器地址栏中的统一资源定位器(URL),轻松识别配置了https的网络服务器。
展示HTTP和HTTPS的互动方式
超文本传输协议安全(https)是超文本传输协议(HTTP)与安全套接字层(SSL)/传输层安全(TLS)协议的结合。TLS是一个在浏览器和网络服务器中广泛实施的认证和安全协议。SSL的工作原理是使用公共密钥对通过SSL连接传输的数据进行加密。大多数网络浏览器支持SSL。它允许你与网络服务器安全地进行通信。
SSL 终止
通过负载平衡器的传入流量是纯文本的,因此是不安全的,容易被邪恶的第三方窃听。HAProxy可以被配置为在将流量分配到多个后端服务器之前对其进行加密。这是一个首选的方法,而不是对单个后端服务器进行加密,这可能是一个繁琐的过程,这就是SSL终端的作用。HAProxy对自己和客户之间的通信进行加密,然后将信息以明文形式转发到你内部网络的后端服务器。然后,它对来自后端服务器的响应进行加密,并将其转发给客户。TLS/SSL证书只存储在HAProxy负载平衡器上,而不是多个后端服务器上,从而减少服务器的工作量。
Certbot
Certbot通常是用来将一个现有的HTTP网站切换到HTTPS中工作(之后,在必要时继续更新网站的HTTPS证书)。一些Certbot文档假设或建议你有一个可以使用HTTP 80端口访问的网站。
步骤1)安装Certbot
- 要从Let's Encrypt Authority获得SSL/TL证书,你首先需要安装certbot。Certbot是免费的开源软件,用于在网站上自动部署Let's Encrypt SSL证书。
- 要安装certbot,请登录HAProxy服务器,首先要更新本地软件包索引。
$ sudo apt update
$ sudo apt install -y certbot python3-certbot-nginx
第2步)获得SSL证书
- Let's Encrypt提供了一些使用各种插件获得SSL证书的方法。大多数插件只协助获得证书,这需要对网络服务器进行手动配置。这些插件被称为 "验证器",因为它们只是检查服务器是否应该被颁发证书。
- 因此,你需要确保没有服务在80端口上监听。要检查哪些服务在80端口上监听,请运行命令。
$ netstat -na | grep ':80.*LISTEN'
$ sudo systemctl stop haproxy
$ sudo certbot certonly --standalone -d www.your-domain_name.tech --non-interactive --agree-tos --email example@gmail.com
如果一切顺利,SSL证书和密钥将被成功保存在服务器上。这些文件本身保存在/etc/letsencrypt/archives目录下,但certbot创建了一个符号链接到/etc/letsencrypt/live/your_domain_name路径。
- 一旦获得证书,你将在/etc/letsencrypt/live/your_domain_name目录下拥有以下文件。
- cert.pem - 这是你的域名的证书。
- chain.pem - 这是Let's Encrypt连锁证书。
- fullchain.pem - 包含cert.pem和 chain.pem的组合。
- privkey.pem - 你的证书的私钥。
第3步)配置HAProxy以使用SSL证书
- 为了让HAProxy进行SSL终止--以便它对自己和客户或最终用户之间的网络通信进行加密--你必须将fullchain.pem和privkey.pem文件合并为一个文件。
- 但在你这样做之前,先创建一个目录,将所有的文件放在那里。
$ sudo mkdir -p /etc/haproxy/certs
$ DOMAIN='www.your-domain_name.tech' sudo -E bash -c 'cat /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/letsencrypt/live/$DOMAIN/privkey.pem > /etc/haproxy/certs/$DOMAIN.pem'
$ sudo chmod -R go-rwx /etc/haproxy/certs
$ sudo vim /etc/haproxy/haproxy.cfg
绑定443端口和证书关系
bind haproxy-ip:443 ssl crt /etc/haproxy/certs/domain.pem
强制http 重定向到https
redirect scheme https if !{ ssl_fc }
保存更改并退出配置文件。一定要确认HAProxy的语法没有问题,使用以下语法。
$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c
重启haproxy采用新配置
$ sudo systemctl restart haproxy
确认运行状态正常
$ sudo systemctl status haproxy
刷新浏览器访问你的域名
猜你喜欢
- 2024-10-11 从零开始搭建HTTPS服务(20台机小型网吧搭建无盘系统教程从零开始)
- 2024-10-11 LNMP环境(nginx)安装SSL安全证书,全站开启HTTPS访问
- 2024-10-11 ubuntu,添加并使用https(ubuntu 添加环境变量)
- 2024-10-11 https免费证书获取(免费https证书地址栏显示不安全)
- 2024-10-11 用Https方式访问Harbor-1.9版本(直接访问https://www.muoujiejie.com)
- 2024-10-11 支付宝、微信、QQ 收款二维码三合一
- 2024-09-21 Nginx鉴权,验证token(nginx 验证用户凭据)
- 2024-09-21 使用cert-manager实现Ingress https--详解
- 2024-09-21 一个命令,让你的网站支持https(这是一个命令,斯塔纳的进攻是个命令德语怎么说)
- 2024-09-21 nginx反向代理 https内部定向到http报302问题解决方案,「亲测」
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)