È possibile limitare un certificato lato client (per l'autenticazione Web) valido solo per un determinato nome sito?

3

Se ho 2 siti web, a.example.com e b.example.com . Questi siti utilizzano TLS e SNI e richiedono l'autenticazione del client con certificati creati con la mia CA.

Il caso d'uso è che alcuni clienti hanno accesso a *.example.com , altri client hanno accesso solo a a.example.com .

È possibile creare un certificato in modo che l'autenticazione sia valida solo se utilizzata sul sito a.example.com , e rifiutata quando si tenta di connettersi a b.example.com ?

O dovrei creare una seconda CA per questo scopo?

In questo caso, è possibile che a.example.com convalidi i certificati contro una di queste 2 CA? (se sì la risposta potrebbe essere specifica per nginx? o fattibile se una CA è una subordinata dell'altro?)

    
posta Bertrand Mathieu 19.02.2015 - 15:50
fonte

1 risposta

2

I certificati stabiliscono autenticazione (legando una persona a un'identità), che è l'approccio sbagliato per limitare l'accesso a b.example.com - un utente si trova ancora su entrambi i siti e tutte le autenticazioni interessate sono facendoli dimostrare la loro identità. L'accesso limitatore è autorizzazione , che dovresti fare sul tuo lato controllando effettivamente l'ID contenuto nel certificato sul tuo database per vedere se dovrebbero avere accesso. Il certificato contiene informazioni sull'argomento che dovrebbero probabilmente includere qualche forma di nome utente e tu dovrebbe mantenere l'elenco degli utenti e a chi è autorizzato ad accedere a cosa. Ciò ti consente anche di modificare l'ambito dell'accesso di qualcuno senza dover riemettere un certificato.

I certificati client non sono legati ai domini; questo perché non hanno lo scopo di autenticare un server. Dovrei essere in grado di usare il mio certificato ovunque che lo accetterà, e con i certificati client è ciò che accade.

    
risposta data 19.02.2015 - 16:53
fonte

Leggi altre domande sui tag