我一直在关注这个教程:
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 地址访问服务器都是可行的。