haproxy 的自签名证书导致 chrome 警告不安全的连接

haproxy 的自签名证书导致 chrome 警告不安全的连接

我尝试使用 haproxy 设置 SSL 终端作为测试平台。它在 80 端口上很好地提供了测试页面,但在 443 端口上,chrome 显示警告,提示 ssl 连接不安全,并且带有 https 的图标被删除。

我使用以下命令创建了证书:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout web.key -out web.crt
cat web.crt web.key > web.pem

通用名称定义为haproxy.com

我也把它haproxy.com放到我的/etc/hosts档案里

以下是 haproxy 的摘录:

frontend  main
    bind *:80
    bind *:443 ssl crt /root/web.pem
    mode http
    default_backend             app

backend app
    balance     roundrobin
    server  app1 127.0.0.1:8080 check
    server  app2 127.0.0.1:8081 check

我该如何处理这个警告?

答案1

自签名证书不受任何浏览器信任,因为您是证书的签名者,而不是证书颁发机构。您可以在浏览器的信任存储中导入根证书,但这只会使您的连接成为受信任的连接,而其他人将收到相同的警告消息。

答案2

即使官方 CA 签名证书在我向前端添加 X-Forwarded-Proto 设置之前,我收到了来自 Chrome 的不安全连接警告。简化示例,其中 haproxy 用作本地主机 SSL 前端,在 Tomcat 后端上侦听(无 SSL)端口 8080:

frontend web_plainhttp
    bind *:80
    redirect prefix https://www.example.com code 301 
frontend web_https
    bind *:443 ssl crt www.example.com_SSLcert.pem
    http-request set-header X-Forwarded-Proto https
    option forwardfor
    default_backend w_website
backend w_website
    server w_server 127.0.0.1:8080

只需删除“http-request set-header X-Forwarded-Proto https”这一行,Chrome 就会显示连接不安全……事实上,http 响应受到后端服务器的影响,后端服务器根据传入的协议在标头/内容中返回 http 或 https

相关内容