Crittografie SSL per nginx per supportare CloudFlare e CloudFront

3

Qualcuno potrebbe suggerire una configurazione di ssl cipher ottimale per il mio server nginx che supporta sia CloudFlare che CloudFront? Ho provato alcuni suggerimenti in altri thread, ma CloudFront restituisce errori.

Aggiornamento 1 :

Il contenuto pertinente dal mio attuale nginx conf è qui sotto. Ho provato una varietà di configurazioni di cifratura da altri thread su StackExchange ma ho avuto poca fortuna. Quello corrente viene copiato dal Mozilla Wiki , ma sono felice di cambiare per provare altre configurazioni che tutti voi potrebbe suggerire. L'errore che sto vedendo è "ERRORE La richiesta non può essere soddisfatta. Generato da cloudfront (CloudFront)" Fai clic qui per un esempio. Ogni altro suggerimento è molto apprezzato!

server {
    listen 443;
    server_name collin-barrett.com;

    ssl on;
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers '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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK';
    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security max-age=15768000;
}
    
posta Collin M. Barrett 11.10.2014 - 21:03
fonte

3 risposte

1

Non so su CloudFlare, ma la documentazione di Amazon CloudFront elenca i protocolli e le suite di crittografia supportate. A partire da ora, ciò include SSL 3.0 e TLS 1.0 e queste suite di crittografia comuni ( e < a href="https://www.ietf.org/mail-archive/web/uta/current/msg00183.html"> RC4 ):

ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-SHA256
AES256-SHA
AES128-SHA
RC4-MD5

Direi che una configurazione simile potrebbe funzionare anche per CloudFlare.

Ho la seconda domanda di Raz su quale messaggio di errore ricevi.

Aggiornamento 1:

Ho un paio di pensieri in risposta al tuo "Aggiornamento 1":

Innanzitutto, noto che il tuo esempio di configurazione non include nulla su un certificato. Eh?

In secondo luogo, link è dietro a CloudFlare. Stai avendo CloudFront connesso a CloudFlare, oppure CloudFront si connette al tuo vero web server tramite qualche altro nome host? Ciò solleva diversi potenziali problemi. Tra l'altro, probabilmente mi sono perso:

  • Ricontrolla ciò, ma penso che CloudFlare Universal SSL supporti solo certificati ECDSA. Il client di CloudFront supporta solo i certificati RSA. Questo sarebbe un problema.

  • Se CloudFront si connette a un altro vhost, mi piacerebbe vederne la configurazione.

  • Se si connette a quel vhost tramite un altro nome host non CloudFlare (backend.collin-barrett.com o somesuch), potrei immaginare le discrepanze nel nome host configurato nel certificato, o il tuo vhost o CloudFront.

  • Perché utilizzare sia CloudFlare che CloudFront? CloudFlare è già un CDN. È ridondante.

Ora, devo andare. Buona fortuna.

    
risposta data 12.10.2014 - 17:11
fonte
0

ho trovato le suite di crittografia consigliate da ssllabs e mozilla che funzionano in quasi tutte le condizioni, maggiori informazioni qui: Guida a Nginx + SSL + SPDY

per quanto riguarda i suggerimenti di mozilla, leggi questa guida: Sicurezza / TLS lato server ; spiega le differenze tra moderno / intermedio / vecchio arretrato - cipher-suite

per la cronologia:

# suggestion from sslabs / including PFS, good compatibility
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;

# suggestion from mozilla, intermediate suggestion, best compatibility

ssl_ciphers 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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:CAMELLIA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
    
risposta data 12.10.2014 - 16:21
fonte
0

Beh, c'è qualche aggiornamento che ho dovuto fare personalmente sul mio sito web, così ho cambiato tutti i vecchi codici e il supporto dei protocolli:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Come puoi vedere, SSLv3 non è più presente a causa della vulnerabilità di POODLE.

Nuove cifre:

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;

Puoi verificare se ti piace a SSLLabs per vedere il tuo punteggio SSL.

    
risposta data 17.07.2015 - 14:53
fonte

Leggi altre domande sui tag