在 HAproxy 1.5 中使用 SSL 证书 【已翻译100%】(2/2)

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

backend nodes
    mode tcp
    balance roundrobin
    option ssl-hello-chk
    server web01 172.17.0.3:443 check
    server web02 172.17.0.4:443 check

正如你所看到的,这里设置成了mode tcp - 前端和后台配置都需要设置成这个模式。

我们还删除了option forwardfor和http-request选项 - 这些不能用于TCP模式,而且我们也不能向已加密的请求添加报头。

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

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

资源

  • HAProxy 官方 博客关于SSL终端的文章
  • SO 问题: "什么是 PEM 文件?"
  • 在Nginx中读取自定义报头 - 没有特别在这个版本中提到,但对于理解发送给Nginx的X-Forwarded-*报头有用
  • 所以你使用了负载均衡器, 一篇关于在你的应用中使用负载均衡器注意事项的文章。.
时间: 2024-09-19 13:27:40

在 HAproxy 1.5 中使用 SSL 证书 【已翻译100%】(2/2)的相关文章

在 HAproxy 1.5 中使用 SSL 证书 【已翻译100%】(1/2)

概述 如果你的应用使用SSL证书,则需要决定如何在负载均衡器上使用它们. 单服务器的简单配置通常是考虑客户端SSL连接如何被接收请求的服务器解码.由于负载均衡器处在客户端和更多服务器之间,SSL连接解码就成了需要关注的焦点. 有两种主要的策略. SSL终端是在负载均衡器终止/解码SSL连接并发送非加密连接到后台服务器的做法 这意味着负载均衡器负责解码SSL连接 - 涉及非SSL请求的缓慢的CPU密集型处理. 这与SSL穿透相反, 它是直接向代理服务器发送SSL连接的. 使用SSL穿透,SSL连接

Docker 中管理数据 【已翻译100%】

到目前我们介绍了一些Docker的基础概念, 知道了如何使用Docker的image, 也知道了如何在多个container间通过网络通讯. 在这章里我们将介绍如何在docker的container内管理数据以及如何在不同的container间共享数据. 我们将介绍两种主要的在docker中管理数据的方法: Data volumes Data volume container Data volumes 一个 data volume 就是一个在一个或者多个container里的特殊用途的目录.它绕

在Serv-U中使用SSL证书增强FTP服务器安全性图文设置方法_FTP服务器

为了保证特殊环境下的数据安全,有时是有必要启用SSL功能的.下面笔者以Serv-U服务器为例,介绍如何启用SSL加密功能. 创建SSL证书 要想使用Serv-U的SSL功能,当然需要SSL证书的支持才行.虽然Serv-U 在安装之时就已经自动生成了一个SSL证书,但这个默认生成的SSL证书在所有的Serv-U服务器中都是一样的,非常不安全,所以我们需要手工创建一个新的SSL证书. 以Serv-U6.0汉化版为例,在"Serv-U管理员"窗口中,展开"本地服务器→设置"

Vagrant 中高效的 Puppet 模块管理 【已翻译100%】

到现在我还记得首次尝试使用vagrant和puppet这两个工具来准备本地开发环境时候的场景.找出适当的方式来捆绑puppet模块与项目后一切都是很容易做到.基本上它可以通过三步阶段来实现. 1.运行"puppet module install "并将它们添加到 git repo (不是最棒的主意但相对简单). 2.在项目中把puppet模块作为 git 的子模块添加好.这原来是更加麻烦,添加/删除/更新模块成为了真正的痛苦. 3.作为它们的依赖项 使用 puppet-libraria

在 AngularJS 应用中通过 JSON 文件来设置状态 【已翻译100%】

想象一个使用简单的angular UI路由的 angularjs 应用: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Example</title> <script src="bower_components/angular/angular.js"></script> <script src

AngularJS 中的友好 URL —— 移除URL 中的 # 【已翻译100%】

AngularJS 默认将会使用一个 # 号来对URL进行路由. 例如: http://example.com/ http://example.com/#/about http://example.com/#/contact 要获得干净的URL并将井号从URL中移除是很容易的. 完成两件事情就行了. 1.配置 $locationProvider 2.设置我们的相对连接的起点路径 $location 服务 在Angular中, $location服务会解析地址栏中的URL,并对你的应用程序作出改变

Docker 中如何连接多个 Container 协同工作 【已翻译100%】

在Docker使用部分我们接触到了通过网络端口来连接运行在Docker容器内的服务.这是同Docker容器内服务和应用互动的方法之一.在这一节中,我们将带你复习一下通过网络端口连接到Docker容器并给你介绍容器连接的概念. 网络端口映射刷新 在Docker的使用部分中,我们创建了一个运行Python Flask应用的容器. $ sudo docker run -d -P training/webapp python app.py 注意:容器有一个内部网络和IP地址(还记得在使用Docker部分

从内存中偷取未加密的 SSH-agent 密钥 【已翻译100%】

如果你曾使用SSH密钥来管理多台机器,那么你可能使用过SSH-agent.这个工具使SSH密钥在内存中持续化,这样用户就不用每次都输入口令.然而,这会导致一些安全风险.root用户可能有权限从内存中取出解密后的SSH密钥,并重构它. 由于需要root权限,这种攻击看起来没什么用.例如,一个攻击者可能安装一个Keylogger并使用它来获得SSH密钥的口令.然而,这要等待肉鸡输入它们的口令.这取决于肉鸡掉线的频度,可能需要几个小时,几天或几周.在快速攻击方法中,这也是为什么从内存中获取SSH密钥对

在终端中运行 Swift 程序 【已翻译100%】

在读完苹果开发者文档( Apple Developer Docs)后,我发现: "Xcode的调试器包括一个Swift语言的交互版本,叫做REPL(Read-Eval-Print-Loop)...可以通过Xcode的控制台或终端来访问" 不幸的是,它并没有告诉你怎样从终端访问.好在这也不是什么难事. 输入如下命令即可(无论你用哪个beta,换掉app的名字) alias swift="/Applications/Xcode6-Beta2.app/Contents/Develo