Selezione del certificato SSL basato sull'intestazione host: è possibile?


17

È possibile che un server Web selezioni un certificato SSL da utilizzare in base all'intestazione host della connessione in entrata o tali informazioni sono disponibili solo dopo aver stabilito la connessione SSL?

Cioè, il mio server web può essere elencato sulla porta 443 e utilizzare il certificato foo.com se è richiesto https://foo.com e il certificato bar.com se è richiesto https://bar.com o sto cercando di farlo qualcosa di impossibile perché il server deve stabilire una connessione SSL prima di sapere cosa vuole il client?

Risposte:


23

Storicamente, la tua prima affermazione è accurata. Ora ci sono più opzioni:

  • Un certificato jolly se sottodomini all'interno dello stesso dominio.
  • Un certificato SAN / UCC per specificare nomi alternativi per il certificato, potendo così servire più certificati.
  • SNI è stato introdotto per stabilire la connessione SSL dopo l'intestazione Host. Questo ha un supporto limitato, tuttavia, poiché è più recente.

A me stesso e ad altri è stato risposto più volte su ServerFault. Suggerirei di cercare ulteriori dettagli a meno che tu non abbia una domanda specifica.


4
Sono andato a cercare e non sono riuscito a trovare nulla; questa è probabilmente una di quelle cose che è facile da cercare solo se conosci la risposta in modo da poterla includere nei termini di ricerca. Grazie.
DrStalker,

3
Se ci sono risposte esistenti su ServerFault, sarebbe stato bello collegarle ad esse.
Organicveggie,

serverfault.com/search , @organicveggie.
Warner,

3
SNI non stabilisce la connessione SSL dopo l'intestazione Host, ma include il nome host nell'handshake SSL. Non importa se non sei uno sviluppatore SSL.
Bart van Heukelom,

La ricerca di Serverfault fornisce questa come risposta. Ciò significa che canonicamente qualsiasi altra domanda è una copia di questa. Quel link che hai incluso non ha risultati.
Ian Boyd,


3

Risposta breve: no

HTTP è incapsulato all'interno di SSL , quindi qualsiasi informazione sulla richiesta è inaccessibile fino a quando non viene stabilita la connessione. Quindi fino a quando un certificato è stato dato al cliente. Non è possibile utilizzare le intestazioni né altre informazioni crittografate, poiché non sono ancora disponibili.

EDIT: questo è vero se vuoi oggi essere cross-browser e completamente portatile. Come affermato da altri, ci sono alcuni nuovi metodi emergenti che lo renderanno possibile nel prossimo futuro.


1

o quelle informazioni sono disponibili solo dopo aver stabilito la connessione SSL?

Corretta. La connessione SSL viene stabilita prima di inviare qualsiasi parte della richiesta HTTP (intestazione host inclusa).


2
Questo non è più completamente accurato.
Warner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.