Soluzione 1
C'è un modo per farlo, ma è così esoterico che staresti meglio aspettando che la compagnia cliente ti dia un certificato appropriato (o vedi Soluzione 2 ). Tanto più che la Soluzione 1 * potrebbe aprire certi rischi di revisione, in quanto gli auditor sono notoriamente prudenti in merito a soluzioni tecniche alternative.
Ma se voi e i tecnici della società cliente preferite chiedere perdono invece di autorizzazione, potete fare quanto segue:
- I tecnici del cliente impostano un servizio Web sicuro che ha accesso a uno dei loro certificati SSL che corrisponde al dominio del cliente in questione. Questo servizio Web è bloccato per alcuni livelli insani specifici del tuo server.
- Il tuo server supporta l' Indicazione del nome del server per TLS.
- Se il browser arriva con una percentuale di
server_name
di RFC-6066 corrispondente al tuo dominio, procedi come al solito. Il browser ottiene felicemente il certificato per il dominio che si aspettavano, tutto è allegro nel mondo.
- Se il browser arriva con una percentuale di co-id RFC-6066% corrispondente al dominio del cliente , passa l'handshake TLS in modalità proxy trasparente e inoltra tutto il traffico al servizio web speciale del cliente **. Ora stai agendo come router proxy / packet - niente cose man-in-the-middle divertenti in corso.
- Il servizio web del cliente fa affari con il certificato che il browser si aspetta e restituisce un reindirizzamento temporaneo 302 crittografato al tuo dominio. per esempio. %codice%. È tutto ciò che questo servizio web client deve fare.
- La connessione TLS è stata interrotta. E in seguito avrai una richiesta di connessione diversa per HTTPS per il tuo dominio da quel browser. Non che tu abbia mai saputo di avere un'istruzione di reindirizzamento, in quanto quello era il traffico che non puoi decifrare ma semplicemente proxy. ; -)
A. Browser ===[client.com]==> https://vendor.com ==(client W/S)==> https://client.com
B. https://client.com ==[302 redirect]==> http://vendor.com ==[302 redirect]==> Browser
C. Browser ==[vendor.com]==> https://vendor.com
* Soluzione 1 mi è venuto in mente per primo e consente al CNAME (mal configurato) di rimanere puntato sull'IP del venditore; altrimenti farei Soluzione 2 la prima soluzione.
** Non l'ho mai visto in natura, quindi non sono sicuro se un proxy trasparente a metà strada attraverso un handshake SSL funzionerebbe nella pratica.
Soluzione 2
La soluzione 1 presuppone ovviamente che non nascondano il tuo servizio al di sotto del loro dominio per XSS o altri motivi di aggregazione dei contenuti.
Se lo sono, la soluzione più comune è chiedergli di non di impostare il proprio dominio CNAME sul proprio IP * ma di configurare un proxy HTTPS inverso che comunica con il tuo sito sotto il cofano.
* Stupida cosa da fare per HTTPS - a causa dell'ambiguità di proprietà e controllo che causa i venditori.