NGINX: проверьте, доступен ли SSL (HTTPS), если нет , перенаправление на HTTP

Текущая конфигурация:

server {
listen 80 default_server;
listen [::]:80 default_server;

listen 443 ssl default_server;
listen [::]:443 ssl default_server;

listen      192.168.0.5:80 default_server;
listen      192.168.0.5:443 ssl default_server;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /usr/share/nginx/default/ssl/default.crt;
ssl_certificate_key /usr/share/nginx/default/ssl/default.key;

server_name _;

root   /usr/share/nginx/default/www/;   
index   index.php index.html;

error_log   /usr/share/nginx/default/log/error.log;
access_log  /usr/share/nginx/default/log/access.log combined;

error_page  404 /404.html;
error_page  403     /403.html;
error_page  500 502 503 504 /50x.html;

recursive_error_pages on;
location = /404.html {
    internal;
}
location = /403.html {
    internal;
}  
location = /50x.html {
    internal;
}

location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}

location ~ \.php$ {
    try_files /1a9fa3dd0cfcb3bfa9827857c25d35d7.htm @php;
}      

location @php {
try_files $uri =404;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
}

При вызове https, прежде чем браузер проверит, действителен ли сертификат или даже доступен, сервер перенаправляет на протокол HTTP.

1
задан 2 March 2016 в 13:12
1 ответ

Просто установите это условие

if ($ssl_protocol = "") {
            return 301 http://$server_name$request_uri;
    }
0
ответ дан 4 December 2019 в 06:36

Теги

Похожие вопросы