在Ubuntu 14.04上将SSL终止添加到HAProxy

本文将逐步指导您在HAProxy上设置SSL终止,以加密HTTPS上的流量。我们将对新前端使用自签名SSL证书。假定您已经安装了HAProxy并配置了标准的HTTP前端。

要求

  • Vultr VPS
  • HAProxy 1.5
  • Ubuntu 14.04 LTS(应该在其他版本和发行版上工作)

生成证书和私钥

运行以下代码行以生成将与HAProxy一起使用的私钥和自签名证书。

openssl genrsa -out /etc/ssl/private/server.key 2048
mkdir /etc/ssl/csr
openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/csr/server.csr
openssl x509 -req -days 365 -in /etc/ssl/csr/server.csr -signkey /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt
cat /etc/ssl/certs/server.crt /etc/ssl/private/server.key > /etc/ssl/certs/server.bundle.pem

配置HAProxy

您应该做的第一件事是确保禁用SSLv3。由于POODLE攻击,SSLv3不再被认为是安全的。所有应用程序和服务器应使用TLS 1.0及更高版本。使用您喜欢的文本编辑器,打开文件/etc/haproxy/haproxy.cfg。在内部,ssl-default-bind-options no-sslv3在该global部分下查找该行。如果看不到,请在本defaults节末尾的该部分之前添加该行。这将确保全局禁用SSLv3。您也可以在前端部分中进行设置,但建议全局将其禁用。

进入HTTPS设置。创建一个名为的新前端部分web-https

frontend web-https 
        bind public_ip:443 ssl crt /etc/ssl/certs/server.bundle.pem 
        reqadd X-Forwarded-Proto:\ https 
        rspadd Strict-Transport-Security:\ max-age=31536000 
        default_backend www-backend 

解释:

  • bind public_ip:443(更改public_ip为VPS公共IP)告诉HAProxy监听发送到端口443(HTTPS端口)上IP地址的任何请求。
  • ssl crt /etc/ssl/certs/server.bundle.pem 告诉HAProxy使用先前生成的SSL证书。
  • reqadd X-Forwarded-Proto:\ https 将HTTPS标头添加到传入请求的末尾。
  • rspadd Strict-Transport-Security:\ max-age=31536000 防止降级攻击的安全策略。

您无需对后端部分进行任何其他更改。

如果希望HAProxy默认使用HTTPS,请添加redirect scheme https if !{ ssl_fc }到本www-backend节的开头。这将强制HTTPS重定向。

保存您的配置并运行service haproxy restart以重新启动HAPRoxy。现在,您都可以将HAProxy与SSL端点一起使用。



Leave a Comment

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息