Waħħal It-talba HTTP sempliċi ntbagħtet lill-port HTTPS Żball f'Nginx


F'dan l-artikolu, ser nuru kif issolvi l-\400 Talba Ħażina: It-talba HTTP sempliċi ntbagħtet lill-port HTTPS fis-server HTTP Nginx. Dan l-iżball normalment iqum meta tipprova tikkonfigura Nginx biex jimmaniġġja kemm it-talbiet HTTP kif ukoll HTTPS.

Għall-iskop ta 'din il-gwida, qed nikkunsidraw xenarju li fih nginx qed iservi websajts multipli implimentati permezz ta' hosts virtwali f'Apache) websajt waħda biss tuża SSL u l-bqija ma jagħmlux dan.

Se nikkunsidraw ukoll il-kampjun tal-konfigurazzjoni SSL hawn taħt (biddilna l-isem tad-dominju attwali għal raġunijiet ta 'sigurtà), li tgħid lil nginx biex jisma' kemm il-port 80 kif ukoll 443. U t-talbiet kollha fuq HTTP għandhom jiġu ridiretti lejn HTTPS b'mod awtomatiku.

server{
        listen 80;
        server_name example.com www.example.com;
        return 301 https://www.example.com$request_uri;
}
server {
        listen 443 ssl http2;
        server_name example.com www.example.com;

        root   /var/www/html/example.com/;
        index index.php index.html index.htm;

        #charset koi8-r;
        access_log /var/log/nginx/example.com/example.com_access_log;
        error_log   /var/log/nginx/example.com/example.com_error_log   error;

        # SSL/TLS configs
        ssl on;
        ssl_certificate /etc/ssl/certs/example_com_cert_chain.crt;
        ssl_certificate_key /etc/ssl/private/example_com.key;

        include /etc/nginx/ssl.d/ssl.conf;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /var/www/html/example.com/;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {

                root   /var/www/html/example.com/;
                fastcgi_pass   127.0.0.1:9001;
                #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include         fastcgi_params;
                include /etc/nginx/fastcgi_params;

        }
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
}

Bl-użu tal-konfigurazzjoni ta 'hawn fuq, ladarba klijent jipprova jaċċessa s-sit tiegħek permezz tal-port 80 jiġifieri http://example.com, l-iżball inkwistjoni se jintwera bħal fl-iskrin li ġej.

tiltaqa’ ma’ dan l-iżball għaliex kull darba li klijent jipprova jaċċessa s-sit tiegħek permezz ta’ HTTP, it-talba tiġi ridiretta lejn HTTPS. Huwa minħabba li nginx jistenna li SSL jintuża fit-tranżazzjoni iżda t-talba oriġinali (riċevuta permezz tal-port 80) kienet HTTP sempliċi, jilmenta bl-iżball.

Min-naħa l-oħra, jekk klijent juża https://example.com, mhux se jiltaqa 'ma' l-iżball ta 'hawn fuq. Barra minn hekk, jekk għandek websajts oħra kkonfigurati biex ma jużawx SSL, nginx jipprova juża HTTPS awtomatikament għalihom li jirriżulta għall-iżball ta 'hawn fuq.

Biex tirranġa dan l-iżball, ikkummenta l-linja hawn taħt fil-konfigurazzjoni tiegħek jew itfiha.

#ssl on 
OR
ssl off

Issejvja u agħlaq il-fajl. Imbagħad erġa ibda s-servizz nginx.

# systemctl restart nginx
OR
$ sudo systemctl restart nginx

B'dan il-mod, tista 'tippermetti lil nginx biex jimmaniġġja kemm it-talbiet HTTP kif ukoll HTTPS għal blokki multipli ta' servers.

Fl-aħħarnett, hawn taħt hemm lista ta 'artikoli dwar it-twaqqif ta' SSL HTTPS fuq distribuzzjonijiet komuni tal-Linux u FreeBSD.

  1. Twaqqif ta' HTTPS b'Ejja Encrypt SSL Ċertifikat Għal Nginx fuq RHEL/CentOS
  2. Sikura Nginx b'Ċertifikat SSL Ejja Kriptaġġ Ħieles fuq Ubuntu u Debian
  3. Kif Tassigura Nginx b'SSL u Ejja Encrypt fi FreeBSD

Dak kollu għalissa. Jekk taf b'xi mod ieħor biex issolvi dan l-iżball, jekk jogħġbok għarrafna permezz tal-formola ta 'feedback hawn taħt.