Impossibile creare il canale sicuro SSL / TLS - Il problema potrebbe essere un server proxy?
-
05-07-2019 - |
Domanda
Ho un'app c # che chiama un metodo di servizio web che si autentica usando un certificato. Il codice funziona, perché quando è installato sul server A (senza proxy) si autentica.
Quando installo il codice sul server B, nel sito client, viene installato dietro un proxy. Ho davvero provato quasi tutto, ma continuo a ricevere questo errore:
Impossibile creare il canale sicuro SSL / TLS
Pensi che questo problema possa essere causato da un server proxy? Se hai avuto un'esperienza personale con questo, ti preghiamo di condividere.
Grazie
Soluzione
Nella mia esperienza, quasi tutti questi messaggi sono dovuti a una macchina della catena (client, proxy, server) non "gradita". un certificato per qualche motivo.
Per elaborare ciò che ha detto twk, se si utilizzano certificati autofirmati o la propria CA, è necessario installare almeno il certificato di firma nell'archivio delle autorità attendibili sul server e possibilmente sul proxy.
Problemi comuni che ho riscontrato:
- Il certificato sul server non è firmato da un'autorità che il PROXY o il CLIENT si fidano
- Il certificato sul CLIENTE non è firmato da un'autorità che il PROXY o il SERVER si fida
- Spiacenti, ho dimenticato di esportare la chiave privata quando ho creato il certificato da installare sul client
- Il mio processo non dispone delle autorizzazioni di lettura per la chiave privata sul client
- Il certificato client è protetto da password e non ho specificato le credenziali durante la lettura del certificato.
Altri suggerimenti
Stavo avendo lo stesso problema. Nel mio caso, i certificati richiedono l'accesso al servizio di rete. Puoi controllare
- Apri certificato MMC
- Vai a Certificati (computer locale) > Personale > Certificati
- Fai clic con il pulsante destro del mouse sul certificato e seleziona Tutte le attività > Gestisci chiavi private ... dal menu contestuale
- Imposta l'autorizzazione appropriata
Se il certificato non è attendibile (è autofirmato), il client C # rifiuterà di connettersi.