V tomto tutoriálu vám ukážeme, jak nakonfigurovat Nginx s SSL na vašem linuxovém serveru. Pro ty z vás, kteří nevěděli, Transport Layer Security (TLS) a Secure Socket Layer ( SSL) poskytuje snadnou metodu šifrování spojení mezi koncovými uživateli a webovými servery. SSL využívá systém certifikační autority k ověření identity, aby se weby nemohly falešně vydávat za jinou organizaci nebo web. Tento výukový program vám ukáže, jak nastavit silné zabezpečení SSL na webovém serveru Nginx.
Tento článek předpokládá, že máte alespoň základní znalosti Linuxu, víte, jak používat shell, a co je nejdůležitější, hostujete svůj web na vlastním VPS. Instalace je poměrně jednoduchá a předpokládá, že běží v účtu root, pokud ne, možná budete muset přidat 'sudo
‘ k příkazům pro získání oprávnění root. Ukážu vám krok za krokem konfiguraci Nginx s SSL na vašem Linuxu.
Nakonfigurujte Nginx pomocí SSL
Povinné:
- Za předpokladu, že jste nainstalovali webový server Nginx.
- Jako registrátora používám Namecheap, který dále prodává certifikáty SSL od řady dalších společností, včetně společnosti Comodo.
Krok 1. Vytvořte adresář
mkdir -p /etc/nginx/ssl/idroot.us
Krok 2. Generování vašeho klíče SSL a CSR
Před zakoupením certifikátu si musíte vygenerovat soukromý klíč a soubor CSR (Žádost o podpis certifikátu). Budete požádáni o obsah certifikátu CSR soubor při objednávání certifikátu. Pro Common Name zadejte zamýšlený název domény bez 'www', tj. idroot.us. Pokud se jedná o Wildcard SSL, použijte *.idroot.us.
openssl req -nodes -newkey rsa:2048 -keyout idroot.us.key -out idroot.us.csr
Krok 3. Vytvořte balíček certifikátů
Po zakoupení certifikátu nakonec obdržíte e-mail s certifikátem SSL. Obsahuje soubor zip s následujícím:
- AddTrustExternalCARoot.crt
- COMODORSAAddTrustCA.crt
- COMODORSADomainValidationSecureServerCA.crt
- idroot_net.crt
cat idroot_net.crt AddTrustExternalCARoot.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt >> ssl-bundle.crt
Jakmile vytvoříte balíček certifikátů, můžete jej přesunout do svého adresáře Nginx SSL.
mv ssl-bundle.crt /etc/nginx/ssl/idroot.us/
Krok 4. Nakonfigurujte certifikát pro Nginx
Přejděte na konfiguraci virtuálního hostitele Nginx, použití SSL s Nginx vyžaduje úpravu direktivy listen a tří direktiv souvisejících s SSL, jak je znázorněno v následujících příkladech:
nano /etc/nginx/conf.d/ssl.conf
server { listen 443 ssl spdy; server_name www.idroot.us idroot.us; root /var/www/idroot.us/public_html; index index.php index.html index.htm; server_tokens off; #SSL CONF ssl on; ssl_certificate /etc/nginx/ssl/idroot.us/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/idroot.us/idroid.us.key; #SSL ssl_session_cache shared:SSL:20m; ssl_session_timeout 10m; ssl_prefer_server_ciphers On; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_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; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; # permalink location / { try_files $uri $uri/ /index.php?$args; } # php-script handler location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; root /var/www/idroot.us/public_html; fastcgi_param SCRIPT_FILENAME /var/www/idroot.us/public_html$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~ /\.ht { deny all; } }
Krok 5. Přesměrovat virtuální hostitele HTTP na HTTPS
return 301 https://idroot.us$request_uri;
Krok 6. Restartujte/znovu načtěte Nginx.
/etc/init.d/nginx restart
Blahopřejeme! Úspěšně jste nainstalovali Nginx s SSL. Děkujeme, že jste použili tento návod k instalaci a konfiguraci Nginx s SSL v systému Linux. Pro další nápovědu nebo užitečné informace vám doporučujeme navštívit oficiální Web Nginx.