在 Ubuntu 上使用 HAProxy 和 Nginx 终止 SSL

在 Ubuntu 上使用 HAProxy 和 Nginx 终止 SSL

我一直在关注这个教程:

http://www.exratione.com/2012/12/websockets-over-ssl-haproxy-nodejs-nginx/

...但是我在通过 SSL 通过 HAProxy 连接到 Nginx 时遇到了问题。

Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.HTTP 重定向到 HTTPS 后,我可以进入 Chrome 并(Error code: ssl_error_rx_record_too_long)进入 Firefox。

我认为这与创建文件的文件连接有关.pem

我尝试过的事情:

  • 禁用 HAProxy 并使用 SSL 直接访问 Nginx
  • 不使用 HAProxy 上的 SSL 来访问 Nginx,这种方法同样有效
  • 按照以下步骤创建新的 SSL 证书:http://wiki.nginx.org/HttpSslModule
  • 检查 SSL 证书文件的权限

我的 Nginx 配置:

server {
    listen   8080 ssl; ## listen for ipv4; this line is default and implied

    root /usr/share/nginx/www;
    index index.html index.htm;

    server_name localhost;

    ssl_certificate /etc/ssl/certs/server.crt;
    ssl_certificate_key /etc/ssl/private/server.key;

    ssl_session_timeout 5m;

    ssl_protocols SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ /index.html;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
            alias /usr/share/doc/;
}

我还有 3 个 SSL 文件:

  • /etc/ssl/certs/server.crt
  • /etc/ssl/private/server.key
  • /etc/ssl/server.pem正如教程所述,这两者都已连接成密钥第一证书第二。

为了使事情变得更加复杂,我正在运行 Ubuntu 12.04 Vagrant

谢谢,

答案1

好的,这其中存在几个问题。

首先,我在 HAProxy 和 Nginx 中都启用了 SSL,这是不必要的,而且本身就会引起问题。因此,我在 Nginx 配置中禁用了 SSL,然后重新启动。

第二个问题是,我试图访问这台服务器(位于客户虚拟机上),localhost部分原因是端口 80 被正确转发。然而,当需要将HTTP流量重定向到HTTPS它时,就会失败。

我猜测这是因为 HAProxy 被重定向到另一个端口。

无论如何,通过实际 IP 地址访问服务器都是可行的。

相关内容