Convalida certificato File host DNS locale

0

Ho una domanda riguardante un errore di convalida del certificato che sto ottenendo. Sto eseguendo una richiesta https da una macchina all'altra (macchine windows). Sul computer di destinazione ho configurato un certificato ssl autofirmato per l'applicazione web. Sulla macchina che sta eseguendo la richiesta ho installato il certificato di root (che è stato utilizzato per firmare l'autofirmato che ho installato nell'altro computer) nell'archivio dei certificati radice attendibili.

L'app di origine esegue la richiesta a quella webapp ospitata sul computer di destinazione, per nome di dominio, ma il suo nome di dominio non è registrato con un server DNS. È semplicemente configurato localmente nel file hosts del sistema operativo. Fondamentalmente è un DNS locale.

Tuttavia, quando eseguo la richiesta web, ottengo errori di convalida del certificato (impossibile stabilire la fiducia SSL). Se provo a eseguire la richiesta dal browser, ottengo lo stesso errore. Ma se indago sul certificato e sulla catena di certificati, posso trovare che tutti i certificati sono ok (sia il certificato SSL usato, sia la catena di certificati, quella di root). Ma ottengo ancora l'errore di convalida.

Potrebbe essere il motivo per cui sto usando un DNS locale (tramite quel file di host locale)? Grazie.

    
posta danutz_plusplus 03.07.2015 - 11:29
fonte

1 risposta

2

Il processo di creazione di una catena di fiducia completa tra due sistemi che utilizzano TLS è il seguente:

1 / Creare o ottenere il certificato CA X509 radice. 2 / Ottenere tutte le autorità di firma intermedie. 3 / generare un certificato X509 foglia e farlo firmare dall'autorità immediatamente superiore nella catena di fiducia (una CA intermedia o la CA radice se si sta utilizzando un modello semplice).

Sul server:

  1. Installare la CA radice nell'archivio certificati radice attendibili (in Windows, si consiglia di farlo per l'account del computer locale a meno che non si sappia esattamente quale entità di sicurezza sarà utilizzata dall'app del server).

  2. Installare tutti i certificati CA intermedi nell'archivio appropriato (si noti che, a seconda del software del server, potrebbe essere necessario creare un file di certificato "concatenato" che contenga tutti i certificati pertinenti nella catena e la chiave privata per la foglia) (su windows stessa osservazione come per 1 /)

  3. Installa il certificato foglia sull'apposito archivio utente principale (di nuovo in Windows, in genere il negozio "personale" del computer locale)

Sul client:

  1. Installa la CA radice nell'archivio certificati radice attendibili.

Si noti che tutti i certificati dovranno esibire le proprietà appropriate per essere considerati validi. La parte difficile è che questo dipende molto dall'applicazione, dall'uso del certificato e da come è stato generato. In genere, per TLS, il certificato foglia deve avere un campo subject.CN o una voce in SubjectAltName che corrisponde al nome DNS che si sta utilizzando per tentare di raggiungerlo (anche se si sta utilizzando un file HOST). Requisiti aggiuntivi possono essere inseriti dal cliente (ad esempio, Chrome non accetterà il certificato con firme SHA-1 se la loro validità si estende oltre 01/01/2017).

Tutto questo è indipendente dal processo di risoluzione dei nomi: non importa se il client ottiene l'indirizzo IP del server attraverso una normale query di risoluzione DNS o da un file HOST.

    
risposta data 03.07.2015 - 12:13
fonte

Leggi altre domande sui tag