T?????? ??? ?????? ???? ????? ????? ????? ????? SSL ?????? ?? ??? Nginx ?????? ????? ????? ??????? ?? HTTP:// ??? HTTPS://.
1. ??? ???????? ??? ?????? ??? ??? ??????? ?????
??? ????? ????? ????? ??? CSR ?????? ????? SSL? ?????? ??? ????? ????? ??? ?????? Sectigo (???? ???? ???? ?????? ???? Comodo) ??? ?????? ??????????. ????? ?? ???? ????? ??????? ?? ???? ???? NiceNic ????? ??.
??????: ??? ????? ???? NGINX ??? ????? ???????? ?????? ??? ????? ????? ??? ??? ????? ??????? '.crt'? ???? ???? ???? ??????? (CA) ??????? '.ca-bundle'.
?? ???? ??? ??????? ??? ????? ??? ????? ??????? ??? ??????? ???? FTP? ??? ???? ??????.
????? ????? ????? ??? ?????? ?????? ??? ????? ?????? ????????? ???.
2. ??? ???? ???????? ?? ??? ????
??? ??? ???? ???????? (????? ??_??????.crt ? ????? ??_??????.ca-bundle) ?? ??? '.crt' ????.
??? ?? ???? ????? ?????? ????? ?? ????? ?? ?????? ????? ????? ???????? (???? CA).
???? ?????? ???? ???? ??? ????? ???????. ??? ????? ?????? ???? ???????:
$ cat ????? ??_??????.crt ????? ??_??????.ca-bundle >> ????? ??_??????_chain.crt
???? ???????? ??? ??? ?? ????? ????? ??????? ?? ????? ?? NiceNic? ???? ??? ????????? ??:
$ cat ????? ??_??????.crt > ????? ??_??????_chain.crt ; echo >> ????? ??_??????_chain.crt ; cat ????? ??_??????.ca-bundle >> ????? ??_??????_chain.crt
3. ????? ???? ???? Nginx ?????? ?? ????? ??? ??????? ??????
?????? ????? ????? SSL ??? Nginx? ????? ?????? ??????? ???? ???????? ??????? ??? ?? ???? a) ????? ??? ????? ????? ?? b) ????? ????? ??????.
a) ?????? ??? ????? ???? ??????? ????? ?????? ?? ??? ???? ????? ?? ??? ??????? ???????. ????? ??? ???? ????? ?? ?????? ???? ??????? ????? ??????? ?? ??? ???? ??? ????? ?? ??????? ??????.
????? ????? ??? ????? ???? ?? ??? ??????:
/etc/nginx/conf.d
???? ??? ??? ??? ??? ?????:
sudo nano /etc/nginx/conf.d/Your_??????*-ssl.conf
??? ?? Your_??????*-ssl.conf ?? ??? ????? ???? ?? ?????? ??????.
??? ???? ???? ????? ??? ??? ?????? ????? ?????? 443 ???? ????????. ???? ?? ?????? ??? ?????? ????? ????? ?? ??? ???? ?????? ?????? 80 ????? ?????? 443. ??? ??? ???? ??? ??? ???? ???? ??? ?????? ?????? ????? ??? ???? ?????? ???????.
b) ??? ??? ??????? ????????? ????? ?????? ????? ???? ????? nginx.conf. ??? ?? ???? ?? ??? ??? ????????:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
????? ????? ??????? ??? ????? ?????? ????:
sudo find / -type f -iname "nginx.conf"
????? ?????? ????? ???? ????? ????????:
sudo nano nginx.conf
?? ???? ????? ??? ??? ?????? ?????? 443 ??????? ????? ???? ???????? ????? ????? ?????? ?????? ?? ??? ?????? 80 (?? ?????? ??? ??????? ????? ?????? ???? ??? ???? ???????). ????? ?? ???? ????? ??? ???? ?????? ?????? 80? ?? ????? ?????? ?????? ?????? ?????? ????????? ??????? ???????? ?? ????? SSL.
???? ???? ??????:
???? ??? ???? ???? ?????? Nginx ????? ??.
??????: ?????? ?? ????? Nginx? ??? ??? ?????:
sudo nginx -v
??????: ?????? ??? ????? ??????? ??? ????? ??_??????_chain.crt ?? ???? ?????? ????????? ??????? ???? ???????? ????? ????????/path/to/.
???? ?????? ?????? Nginx 1.14 ??? ???:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/????? ??_??????_chain.crt;
ssl_certificate_key /path/to/????? ??_private.key;
root /path/to/webroot;
server_name ????? ??_??????.com;
}
??????: ????? ????? ??? ????? ???? ?? ??? ???????? ??? ??? ?????? ???:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/????? ??_??????_chain.crt;
ssl_certificate_key /path/to/????? ??_private.key;
root /path/to/webroot;
server_name ????? ??_??????.com www.????? ??_??????.your;
}
???? ?????? ?????? Nginx 1.15 ??? ???:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/????? ??_??????_chain.crt;
ssl_certificate_key /path/to/????? ??_private.key;
root /path/to/webroot;
server_name ????? ??_??????.com;
}
ssl_certificate ??? ??????? ????? ??? ????? ???? ????? ??? ???????? ??????? ???? ??????? ??????.
ssl_certificate_key ??? ??????? ????? ??? ??????? ????? ???? ?? ?????? ?? ??? CSR.
???? ??? ??? ??????? ??? ????? ?????? ??? ??????? ????? ??? Nginx.
???: ???? ??? ???? ????? ?????? ???????? ?? ????? Wildcard? ?????? ??? ????? ???? ???? ?????? ??? ????/???? ???? ???? ?? ???????. ???? ?? ????? ??????/?????? ?????? ?????? ?? ???????? ??? ??? ????? ??????? ?? ???? ??????? ??? ?? ???? ?????.
????? ????? ???? ?????? ???????? ??? ?????? ???? ?? ??? ?????????. ??? ???? ????? ?????? ?? ????????? ???? ??????? ?????? ??????? ???????.
??? ??? ????? ?????? ?? ??? ???? ??? ???????:
sudo nginx -t
??? ????? ?????? ???? ?????? ?? ?????? ?????? ???? ????. ?? ????? ?? ??????? ????? ????? ????? ??? ??? ???? ??? ?????.
???? ???????: ?????? ??? ????? ??????? ???????? ??????? ????????? ??? ???:
sudo nginx -T | grep 'err??_log'
?? ??? ??? ???? ?? ?? ??????? ????????? ?? ???? ??????? ????? ????????? ?? ??? ?? ??? ????? ????? ??? ???????? ??? ?????? ?? ??? ?????? ?????????:
tail /var/log/nginx/err??.log -n 20
??? ??? ?????? ???????? ??????? ??? ????? Nginx ???? ????? ?????? ?????????:
sudo nginx -s reload
???? ?? ????? ????? ????? SSL ?????? ??. ????? ?????? ?? ??????? ???.
??????? ????:
???????? ??? ????? ??? ????? SSL ???? ?? ???? ???????? ??? ???????? ?? ????? ????? ??? "Nginx/Apache err??: 0906D066:PEM routines:PEM_read_bio:bad end line"? ?? ??? ??????? ???? ?????? ??? ???? ?? ???? ???????.
????? ????? ???? ?? ??? ??????? ?? ????? ????? "Nginx ????? SSL: err??:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch"? ????? ?????? ??? ?????? ?? ???????? ????? ?????? ???????? ???? ?? ??? ??????.
4. ????? ????? ??????? ??? HTTPS
????? ???? ????? ????? ??????? ?? HTTP ??? HTTPS. ???? ???????? ????? ???? ????? ??? ??? ?????? ??? ?????? ?????? ?? ?????.
?????? ????? ?????? ??? ????? ??? ???? ??? ??? ??????? ????? ????? ?????? ?????? 80.
?????:
????? ??????? ??? ??????? ??????? ????? ?? ????? ??????? ???? ?? ??????? ????:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
???????? ?????????? ???? conf ??:
??? ???? Linux ?????? ??? RHEL: /etc/nginx/conf.d/default.conf
??? ???? Linux ?????? ??? Debian: /etc/nginx/sites-enabled/default
????? ??? ??????? ?????? ?? ?? ???? ????? ??? ???? ?????? ????????. ????? ???:
sudo nano name_of_the_file
????? ?????? ??? ????? ???? ????? ??? ???? ?????? ?????? 80 (???? HTTP ?????????)? ??? ????? ??????:
return 301 https://$server_name$request_uri;
??????: ??? ????? ????? ????? ??????? ????? ???? ??? ?? ???? ??????.