
ΠΠ΄ΠΈΠ½ ΠΎΡ ΡΠΎΠΏ ΡΠ°ΠΉΡoΠ²Π΅ Π² Alexa (ΡΠ΅Π½ΡΡΠ°Π»Π½ΠΈΡΡ ΠΊΡΡΠ³), Π·Π°ΡΠΈΡΠ΅Π½ Ρ HTTPS, Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ (Π² ΡΠΈΠ²ΠΎ) ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (Π² Π±ΡΠ»ΠΎ), ΡΡΠ΅Π΄ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΡΠ·Π²ΠΈΠΌΠΈ (ΠΏΡΠ½ΠΊΡΠΈΡΠ½ΠΎ Π·Π°ΠΏΡΠ»Π²Π°Π½Π΅)
Π Π΄Π½Π΅ΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠΊΠΎΠ½Π°ΡΠ° Π·Π° Π·Π°ΡΠΈΡΠ΅Π½Π° Π²ΡΡΠ·ΠΊΠ° HTTPS ΡΡΠ°Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΈ Π΄ΠΎΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΠΈΠΎΠ·Π΅Π½ ΡΠ°ΠΉΡ. ΠΠΊΠΎ Π»ΠΈΠΏΡΠ²Π°, ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈ Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ΅ ΠΈ Π½Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°Ρ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° Π½Π΅Π³ΠΎ.
ΠΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° βΠΊΠ°ΡΠΈΠ½Π°Ρβ Π² Π°Π΄ΡΠ΅ΡΠ½Π°ΡΠ° Π»Π΅Π½ΡΠ° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π·Π°ΡΠΈΡΠ°. ΠΎΡ ΠΊΠ»Π°ΡΠ°ΡΠΈΡΡΠ° Π½Π° Alexa ΠΏΠΎΠΊΠ°Π·Π°: ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ
ΡΠ° ΠΏΠΎΠ΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ SSL/TLS, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΡΠ΅Π· ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π‘ΠΏΠΎΡΠ΅Π΄ Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π°ΡΠ°ΠΊΡΠ²Π°Π΅ΠΌΠ°ΡΠ° ΠΏΠΎΠ²ΡΡΡ
Π½ΠΎΡΡ.
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ
ΠΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈ ΠΎΡ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ° ΠΠ°' Π€ΠΎΡΠΊΠ°ΡΠΈ Π²ΡΠ² ΠΠ΅Π½Π΅ΡΠΈΡ (ΠΡΠ°Π»ΠΈΡ) ΠΈ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ Π½Π° ΠΠΈΠ΅Π½Π°. ΠΠΎΠ΄ΡΠΎΠ±Π΅Π½ Π΄ΠΎΠΊΠ»Π°Π΄ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡ Π½Π° 40-ΠΈΡ ΡΠΈΠΌΠΏΠΎΠ·ΠΈΡΠΌ Π½Π° IEEE ΠΏΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ Π»ΠΈΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ 20 Π΄ΠΎ 22 ΠΌΠ°ΠΉ 2019 Π³. Π² Π‘Π°Π½ Π€ΡΠ°Π½ΡΠΈΡΠΊΠΎ.
ΠΡΡ Π° ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ 10 000 Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ HTTPS ΡΠ°ΠΉΡΠ° ΠΎΡ ΡΠΏΠΈΡΡΠΊΠ° Π½Π° Alexa ΠΈ 90 816 ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΡΡ Ρ ΠΎΡΡΠΎΠ²Π΅. Π£ΡΠ·Π²ΠΈΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±ΡΡ Π° ΠΎΡΠΊΡΠΈΡΠΈ Π½Π° 5574 Ρ ΠΎΡΡΠΎΠ²Π΅, ΡΠΎΠ΅ΡΡ ΠΎΠΊΠΎΠ»ΠΎ 5.5% ΠΎΡ ΠΎΠ±ΡΠΈΡ Π±ΡΠΎΠΉ:
- 4818 ΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΈ Π·Π° MITM
- 733 ΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΈ Π·Π° ΠΏΡΠ»Π½Π° Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡ Π½Π° TLS
- 912 ΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΈ Π·Π° ΡΠ°ΡΡΠΈΡΠ½Π° Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡ Π½Π° TLS
898 ΡΠ°ΠΉΡΠ° ΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ Π·Π° Ρ Π°ΠΊΠ΅ΡΠΈ, ΡΠΎΠ΅ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Ρ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π° 977 ΡΠ°ΠΉΡΠ° Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ ΡΠ»Π°Π±ΠΎ Π·Π°ΡΠΈΡΠ΅Π½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π».
ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π²Π°Ρ, ΡΠ΅ ΡΡΠ΅Π΄ 898 βΠ½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½ΠΈβ ΡΠ΅ΡΡΡΡΠΈ β ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΈ, ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅. 660 ΠΎΡ 898 ΡΠ°ΠΉΡΠ° Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ Π²ΡΠ½ΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅: ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ°. Π‘ΠΏΠΎΡΠ΅Π΄ Π°Π²ΡΠΎΡΠΈΡΠ΅, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π°ΡΠ°ΠΊΡΠ²Π°Π΅ΠΌΠ°ΡΠ° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡ.
ΠΡΠΊΡΠΈΡΠΈ ΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ: ΠΏΡΠΈ 10% ΠΎΡ ΡΠΎΡΠΌΠΈΡΠ΅ Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΠ΅ΡΠΎ Π·Π°ΠΏΠ»Π°ΡΠ²Π° Ρ ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»ΠΈ, 412 ΡΠ°ΠΉΡΠ° Π΄ΠΎΠΏΡΡΠΊΠ°Ρ ΠΏΡΠΈΡ Π²Π°ΡΠ°Π½Π΅ Π½Π° Π±ΠΈΡΠΊΠ²ΠΈΡΠΊΠΈ ΠΈ βΠΊΡΠ°ΠΆΠ±Π° Π½Π° ΡΠ΅ΡΠΈΠΈβ, Π° 543 ΡΠ°ΠΉΡΠ° ΡΠ° ΠΏΠΎΠ΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° Π°ΡΠ°ΠΊΠΈ Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° Π±ΠΈΡΠΊΠ²ΠΈΡΠΊΠΈΡΠ΅ (ΡΡΠ΅Π· ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ).
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠ° Π΅, ΡΠ΅ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ SSL/TLS ΠΈ ΡΠΎΡΡΡΠ΅ΡΠ° : POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) ΠΈ Heartbleed (CVE-2014-0160). ΠΠ° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΡΡΡ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ΅Π΄ΠΈΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈ ΡΡΠ·Π²ΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΠΈ. ΠΠΎ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°ΠΊΠΈΠ²Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π°Ρ ΠΈΠ·Π±ΠΎΡ ΠΎΡ ΠΎΠ±ΡΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΈΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, Π² ΠΊΠΎΠΈΡΠΎ Π΅ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°ΠΌΠ΅. ΠΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΡΡΠ½ΠΎ ΠΊΠΎΠΈ Π½Π°Π±ΠΎΡΠΈ ΡΠΈΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π΄Π° ΡΡΠΈΡΠ°ΠΌΠ΅ Π·Π° βΠ΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΈβ.
ΠΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π΅Π΄ΠΈΠ½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ ΠΈ ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° HTTPS. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π·Π°ΡΠΈΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠΎ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΡΡΡΠ²ΡΡ nginx 1.14.0:
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ
ΠΠ°ΠΉ-ΡΡΠ°ΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ: Firefox 27, Chrome 30, IE 11 Π½Π° Windows 7, Edge, Opera 17, Safari 9, Android 5.0 ΠΈ Java 8
server {
listen 80 default_server;
listen [::]:80 default_server;
# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# modern configuration. tweak to your needs.
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver ;
....
}Π‘ΡΠ΅Π΄Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°
ΠΠ°ΠΉ-ΡΡΠ°ΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ: Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7
ΡΡΡΠ²ΡΡ {
ΡΠ»ΡΡΠ°ΠΉ 80 default_server;
ΡΠ»ΡΡΠ°ΠΉ [::]:80 default_server;
# ΠΡΠ΅Π½Π°ΡΠΎΡΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ HTTP Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ HTTPS Ρ 301 Πoved Permanently ΠΎΡΠ³ΠΎΠ²ΠΎΡ.
Π²ΡΡΠ½ΠΈ 301 https://$host$request_uri;
}
ΡΡΡΠ²ΡΡ {
ΡΠ»ΡΡΠ°ΠΉ 443 ssl http2;
ΡΠ»ΡΡΠ°ΠΉ [::]:443 ssl http2;
# ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ΅, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² SERVER HELLO, ΡΠ° ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΠ°Π½ΠΈ Π² ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π° Diffie-Hellman Π·Π° DHE ΡΠΈΡΡΠΈ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΎ 2048 Π±ΠΈΡΠ°
ssl_dhparam /path/to/dhparam.pem;
# ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ Π½ΡΠΆΠ΄ΠΈΡΠ΅ ΡΠΈ.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½) (15768000 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ = 6 ΠΌΠ΅ΡΠ΅ΡΠ°)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΉΡΠ΅ OCSP Π·Π°ΠΏΠΈΡΠΈ ΠΎΡ URL Π² ssl_certificate ΠΈ Π³ΠΈ ΠΊΠ΅ΡΠΈΡΠ°ΠΉΡΠ΅
ssl_stapling on;
ssl_stapling_verify on;
## Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠ°ΠΉΡΠ΅ Π²Π΅ΡΠΈΠ³Π°ΡΠ° Π½Π° Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ Π½Π° OCSP ΠΎΡΠ³ΠΎΠ²ΠΎΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Root CA ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver ;
....
}Π‘ΡΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°
ΠΠ°ΠΉ-ΡΡΠ°ΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ: Windows XP IE6, Java 6
ΡΡΡΠ²ΡΡ {
ΡΠ»ΡΡΠ°ΠΉ 80 default_server;
ΡΠ»ΡΡΠ°ΠΉ [::]:80 default_server;
# ΠΡΠ΅Π½Π°ΡΠΎΡΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ HTTP Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ HTTPS Ρ 301 Moved Permanently ΠΎΡΠ³ΠΎΠ²ΠΎΡ.
Π²ΡΡΠ½ΠΈ 301 https://$host$request_uri;
}
ΡΡΡΠ²ΡΡ {
ΡΠ»ΡΡΠ°ΠΉ 443 ssl http2;
ΡΠ»ΡΡΠ°ΠΉ [::]:443 ssl http2;
# ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ΅, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² SERVER HELLO, ΡΠ° ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΠ°Π½ΠΈ Π² ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π° Diffie-Hellman Π·Π° DHE ΡΠΈΡΡΠΈ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΎ 2048 Π±ΠΈΡΠ°
ssl_dhparam /path/to/dhparam.pem;
# ΡΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ Π½ΡΠΆΠ΄ΠΈΡΠ΅ ΡΠΈ.
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP';
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½) (15768000 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ = 6 ΠΌΠ΅ΡΠ΅ΡΠ°)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΉΡΠ΅ OCSP Π·Π°ΠΏΠΈΡΠΈ ΠΎΡ URL Π² ssl_certificate ΠΈ Π³ΠΈ ΠΊΠ΅ΡΠΈΡΠ°ΠΉΡΠ΅
ssl_stapling on;
ssl_stapling_verify on;
## Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠ°ΠΉΡΠ΅ Π²Π΅ΡΠΈΠ³Π°ΡΠ° Π½Π° Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ Π½Π° OCSP ΠΎΡΠ³ΠΎΠ²ΠΎΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Root CA ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver ;
....
}ΠΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠ»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° OpenSSL. ΠΠ°Π±ΠΎΡΡΡ ΠΎΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ° ΡΠΊΠ°Π·Π²Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°, Ρ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ HTTPS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. βΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π±ΠΈΡΠΊΠ²ΠΈΡΠΊΠΈ ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π· 2005 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ βΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡΡ TLSβ ΡΡΠ°Π½Π° ΠΎΠ±ΡΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π½Π΅ΡΠ° Π½Π΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΡΠ΄Π²Π°ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅β, β Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ. ΠΠ° Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΠΊΠ°Π½Π°Π»Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ²ΡΡΠ° ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΈ Π²ΡΠ½ΡΠ½ΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠ΄Π²Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠ°ΠΉΡΠ°. ΠΠΎΠΆΠ΅ Π±ΠΈ Π΅ ΡΠ°Π·ΡΠΌΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΡΠ° ΠΎΠ΄ΠΈΡ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π² ΡΡΠ΅ΡΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
