当我尝试使用 4G 连接访问我的网站时出现空白页面(ssl 错误)?

Blank page (ssl error) when I am trying to access my website with a 4G connection?

我的一些客户尝试使用 4G 互联网访问我的网站时出现空白页面。

通过积累案例,我发现它总是特定的4G提供商:Bouygues telecom(法国提供商)。可能是其他提供者,但这个是最常见的。

我有一个 Ubuntu 网络服务器 运行 Nginx 和 php5。

遗憾的是我找不到那些空白屏幕连接的任何 nginx 日志。

当我在笔记本电脑上共享 Bouygues 4G 连接时,我在 mozzila 上也遇到了 PR_CONNECT_RESET_ERROR 的问题。或小米 phone.

上的 ERR_CONNECTION_RESET

最后一轨,我可以用这个 4G 连接访问我的试制网站,它没有 ssl conf。

有人知道我正在试验什么。

你会在我的 nginx conf 下面找到:

server {
        listen 80 default_server;
        allow all;
        server_name _;
        return 301 https://$host$request_uri;
}server {
        listen 443 default_server ssl;
        allow all;
        ssl on;
        ssl_certificate /etc/nginx/ssl/2020_easyrenter.crt;
        ssl_certificate_key /etc/nginx/ssl/easyrenter.fr.key;        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        ssl_prefer_server_ciphers on;
        ssl_session_cache  builtin:1000  shared:SSL:10m;
        add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains';
        ssl_stapling_verify on;
        resolver 8.8.4.4 8.8.8.8 valid=300s;
        resolver_timeout 10s;        server_name www.easyrenter.fr easyrenter.fr 46.101.103.115;
        root /home/deploy/easyrenter/current/;       location = /sitemap.xml {
                alias /home/deploy/easyrenter/current/sitemap.xml;
       }       location = /sitemaps/en/sitemap.xml {
                alias /home/deploy/easyrenter/current/sitemaps/en/sitemap.xml;
       }       location = /sitemaps/fr/sitemap.xml {
                alias /home/deploy/easyrenter/current/sitemaps/fr/sitemap.xml;
       }        location / {
                index index.html index.php;
                try_files $uri/ @handler;
                expires 30d;
        }        location ~ \.(js|css|png|jpg|gif|ico|pdf|tiff|swf) {
                try_files $uri $uri/;
                expires 356d;
        }        location ^~ /app/ {deny all;}
        location ^~ /includes/ {deny all;}
        #location ^~ /lib/ {deny all;}
        location ^~ /media/downloadable/ {deny all;}
        location ^~ /pkginfo/ {deny all;}
        location ^~ /report/config.xml {deny all;}
        location ^~ /var/ {deny all;}        location /var/export {
                auth_basic  "restricted";
                auth_basic_user_file htpasswd;
                autoindex on;
        }        location /. {
                return 404;
        }        location @handler {
                rewrite / /index.php;
        }#       location ~ .php {
#               rewrite ^(.*.php)/  last;
#       }        location ~ \.php$ {
                if (!-e $request_filename) { rewrite / /index.php last;}
                expires off;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_param HTTPS $fastcgi_https;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                proxy_read_timeout 300;        }        #Poids max des upload files
        client_max_body_size 32M;       include /etc/nginx/nginx-redirection.conf;
}

我找到了解决方案。

Bouygues 4G 强制我服务器的 IPV6。

起初请求页面是为使用那里的 4G Bouygues 的用户设计的。猜测这是一个 IPV6 问题,我在我的服务器上激活了一个 IPV6,并在我的 DNS 上添加了一个 AAAA 条目。

然后 4G Bouygues 用户有一个空白页面,因为 IPV6 没有在我的 nginx conf 上声明。下面是我的补充:

server {
    listen 80;
    **listen [::]:80;**
    allow all;
    server_name _;
    return 301 https://$host$request_uri;
}

server {
        listen 443 default_server ssl http2;
        **listen [::]:443 default_server ssl http2;**

希望对其他人有所帮助, 阿克塞尔