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.
- Twaqqif ta' HTTPS b'Ejja Encrypt SSL Ċertifikat Għal Nginx fuq RHEL/CentOS
- Sikura Nginx b'Ċertifikat SSL Ejja Kriptaġġ Ħieles fuq Ubuntu u Debian
- 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.