Nginx

在 Ubuntu 上使用 HAProxy 和 Nginx 終止 SSL

  • February 4, 2014

我一直在關注本教程:

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 重定向和(Error code: ssl_error_rx_record_too_long)Firefox之後,我進入Chrome。

我認為這與文件連接以創建.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密鑰第一個證書第二個。

為了讓事情變得更加複雜,我在Vagrant.

謝謝,

好的,這有幾個問題。

首先是我在 HAProxy 和 Nginx 中都啟用了 SSL,這是不必要的,它本身會導致問題。所以我在我的 Nginx 配置中禁用了 SSL 並重新啟動。

第二個問題是我試圖訪問這台伺服器(它位於來賓虛擬機上)localhost,部分原因是埠 80 被正確轉發。但是,當將HTTP流量重定向到HTTPS它時會失敗。

我猜這是因為 HAProxy 被重定向到另一個埠。

無論如何,通過實際 IP 地址訪問伺服器是可行的。

引用自:https://serverfault.com/questions/494641