【问题标题】:setting up haproxy to listen to ssl设置 haproxy 来收听 ssl
【发布时间】:2023-09-05 02:03:01
【问题描述】:

我按照https://www.digitalocean.com/community/tutorials/how-to-implement-ssl-termination-with-haproxy-on-ubuntu-14-04 的说明设置了 haproxy 以收听 ssl。

但是,当我尝试通过 https 发送任何请求时,它似乎不起作用,我基本上得到了 ERR_CONNECTION_REFUSED。

我通过将所有操作输出到 nohup 来启动 haproxy。我尝试查看 nohup,但当我点击请求时,我似乎没有得到任何信息。

基本上这是我添加的配置:

frontend https
bind *:443 ssl crt /etc/ssl/private/{domainname.com}.pem
reqadd X-Forwarded-Proto:\ https
default_backend default

在生成证书时,我也拥有相同的 domainname.com。

有没有其他方法可以找出为什么它似乎不起作用。

【问题讨论】:

  • 在您配置了 haproxy 的 linux 机器上,如果您执行 telnet server-ip 443 是在工作还是说连接被拒绝?!你也确定启动了haproxy服务?!您可以发出/etc/init.d/haproxy 状态来检查服务是否实际运行

标签: haproxy


【解决方案1】:

您可以使用“openssl”来验证证书响应:

echo | openssl s_client -showcerts -connect yourdomain:443

或尝试“卷曲”:

curl -v -o /dev/null https://yourdomain

检查您的 haproxy 日志记录是否已启用且正确无误,例如:

global
    log 127.0.0.1 local0

defaults
    log global

【讨论】:

  • 感谢您的回复。我能够完成这项工作,我的 haproxy 配置设置不正确。按照digitalocean.com/community/tutorials/… 的说明,我创建的证书是自签名证书。当我执行curl -v -o /dev/null domain:443 时,它会给出错误curl: (60) SSL certificate problem: Invalid certificate chain。我尝试添加选项crt-ignore-err all,但这也没有帮助。有没有办法绕过这个错误,还是我需要从受信任的证书颁发机构获取证书?
  • 对不起应该更明确。使用 curl 只是一个例子。无论我使用什么客户端,基本上都有办法绕过这个错误。因此,如果我在浏览器中点击我的网址,它会显示一个带有 ERR_CERT_AUTHORITY_INVALID 的警告页面。
  • 顺便说一句,我的 haproxy 版本是 1.4.24。
  • 不 - 当您使用自签名证书时,所有客户端都会报告这一点。您不能在服务器端说“请忽略我的自签名证书”;)或者您使用官方证书(例如,让加密证书免费)