Nginx
在 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 重定向和(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 地址訪問伺服器是可行的。