我对这一点感到非常难过。我最近在我的网站上安装了SSL证书,SSL终止于我的负载均衡器HAProxy。到目前为止,我的所有常规用户都可以使用安全连接,除了那些主要公司网络后面的用户。
网络背后的人在Chrome中收到此消息:
"此网页不可用" "该 https://example.com/的网页可能会暂时停止或可能 已经永久移动到新的网址。"
错误代码:ERR_CONNECTION_CLOSED
如果我启用它,他们可以正常访问http://example.com网站(没有SSL)。
我原本想知道这是否是我的密码问题,但这些企业用户也无法访问静态服务器上的文件(使用带有SSL证书的AWS Cloudfront)。
我猜这家公司可能会全面禁止SSL证书,除非有白名单?他们可以访问谷歌(https://google.com)的ssl网站。我的证书有问题吗? Chrome有绿锁,并说我的网站使用现代加密技术。
无论如何,无论如何,确定他们是否无法通过SSL访问我的网站,然后重定向他们以使用非安全版本?我尝试通过HAProxy文档查看,但我遗漏了一些东西,此时有隧道视觉。
感谢所有人。这是我的配置文件:
global
tune.ssl.default-dh-param 2048
ssl-default-bind-options no-sslv3
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
mode http
option forwardfor
option http-server-close
option http-pretend-keepalive
timeout client 120s
timeout connect 10s
timeout tunnel 120s
timeout client-fin 120s
timeout server 120s
frontend https-www
bind *:443 ssl crt /etc/ssl/example_com/example.com.pem
#using naked domain
redirect location https://example.com if { hdr_beg(host) -i www }
acl is_sockjs path_beg /sockjs
use_backend sockjs if is_sockjs
default_backend django
frontend all
bind *:80
#How do I detect that the ssl site failed for them?
redirect scheme https if !{ ssl_fc }
backend sockjs
reqadd X-Forwarded-Proto:\ http
balance leastconn
cookie SERV_ID prefix nocache
server srv_sockjs1 sockjsserver-ip check cookie s1
backend django
reqadd X-Forwarded-Proto:\ https
balance roundrobin
server srv_static django-server-ip
backend django-nonssl
reqadd X-Forwarded-Proto:\ http
balance roundrobin
server srv_static django-server-ip
答案 0 :(得分:0)
好的想出来了
这与裸域相关。服务器不喜欢我将https://www.example.com重定向到https://example.com的事实。在进一步阅读时,我现在要做相反的事情,我不支持裸域,现在将https://example.com重定向到https://www.example.com
我也必须在cloudfront上执行此操作,现在我使用www.subdomain.example.com而不是example.com