2017-01-30 10 views

Odpowiedz

39

Te instrukcje dotyczą wszystkich certyfikatów (w tym certyfikatów Let's Encrypt). Jednak podajemy jedną lub dwie Let's Encrypt konkretnych wskazówek.

Podana poniżej konfiguracja NGINX SSL daje następujące wyniki testów SSL Labs. Do wyboru:

Zalecane

  • A +
  • certyfikatu 100/100
  • Pomoc Protokół 95/100
  • Key Exchange 90/100
  • siła szyfrowania 90/100

doskonały, ale restrykcyjne

  • A +
  • certyfikatu 100/100
  • Pomoc Protokół 100/100
  • Key Exchange 100/100
  • siła szyfrowania 100/100

NGINX SSL config - Wyodrębnij wybrane bity. Noty wyjaśnić, w jaki sposób dana dyrektywa nginx wpłynie twoi Labs SSL zdobyć:

# Your listen directive should be .. listen 443 ssl http2; 
# gzip off; # gzip over ssl? really? 

ssl_certificate  /etc/letsencrypt/live/yourdomain.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; 

#################### ssllabs.com Protocol Support 

ssl_protocols TLSv1.2 TLSv1.1 TLSv1; # Score=95 (recommended) 
# ssl_protocols TLSv1.2; # Score=100 

#################### ssllabs.com Key Exchange 

# Score=90 (recommended) 
ssl_dhparam   /etc/letsencrypt/live/yourdomain.com/dhparam2048.pem; # openssl dhparam -out dhparam2048.pem 2048 
ssl_ecdh_curve  secp384r1; # optional 

# Score=100 (must generate letsencrypt certs with flag --rsa-key-size 4096) 
# ssl_dhparam  /etc/letsencrypt/live/yourdomain.com/dhparam4096.pem; # openssl dhparam -out dhparam4096.pem 4096 
# ssl_ecdh_curve  secp384r1; # required 

#################### ssllabs.com Cipher Strength - see https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations 
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:EC 
DHE-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-AES25 
6-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; # Score=90 (recommended) 
# ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; # Score=100 

#################### ssllabs.com A+ - Enable HSTS on all subdomains 

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 
# add_header Strict-Transport-Security "max-age=0; includeSubDomains"; # Delete browser cached HSTS policy (i.e. turn HSTS off) 

# THE PRELOAD DIRECTIVE WILL HAVE SEMI-PERMANENT CONSEQUENCE AND IS IRREVERSIBLE - DO NOT USE UNTIL FULLY TESTED AND YOU UNDERSTAND WHAT YOU ARE DOING! 
# add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; 

#################### Other typical SSL settings that DO NOT effect the ssllabs.com score 

ssl_session_cache shared:SSL:10m; 
ssl_session_timeout 10m; 
ssl_prefer_server_ciphers on; 

ssl_stapling on; 
ssl_stapling_verify on; 
resolver 8.8.8.8 8.8.4.4 valid=300s; 
resolver_timeout 10s; 

add_header X-Frame-Options DENY; 
add_header X-Content-Type-Options nosniff; 

Uwaga, można dostać tylko 100 na Key Exchange jeśli:

  • certyfikaty rozmiar klucza RSA to 4096 (dla LET'S Szyfruj użyj --rsa-key-size 4096 podczas generowania certyfikatu, w przeciwnym razie utkniesz z kluczem RSA używanym podczas generowania przez ciebie certyfikatu) ORAZ
  • dhparam jest 4096 (openssl dhparam -out dhparam4096.pem 4096) - Potrwa to około 1 godziny, aby wygenerować, bezużyteczne dla automatycznego rozwiązania

EDIT

  • 2048 wystarczy zabezpieczenie na najbliższe 40 lat. Nikt nigdy nie złamał 1024, nie mówiąc już o 2048!

  • openssl dhparam -dsaparam -out dhparam4096.pem 4096 ... jest znacznie szybszy niż godzina (patrz flaga -dsaparam), ale nie wiem, czy powinieneś go używać, czy nie ...nie przetestowałem tego w teście SSL Labs odkąd mam zamiar z 2048

+0

Czy istnieje powód do generowania dhparams dla każdej domeny? Zawsze używałem tego samego dhparamu do wszystkiego na hoście. To sprawia, że ​​konfigurowanie serwera jest czasochłonne, ale szybkie po nim. –

Powiązane problemy