Frage

Diese Frage dreht sich alles um einen SslPolicyError.RemoteCertificateNotAvailable Fehler zu lösen.

Ich habe einen TCP Server mit SslStream und einem TCP-Client für das andere Ende entwickelt.

Ich authentifizieren den Server mit:

sslStream.BeginAuthenticateAsServer 

Ich authentifizieren den Client mit:

sslStream.BeginAuthenticateAsClient

Ich lade meine Client-Zertifikat von Trusted Publishers - Local Machine.

Sowohl auf der gleichen Maschine ausgeführt werden.

Ich habe versucht, das Client-Zertifikat von der cer und PFX-Dateien anstatt der vertrauenswürdigen Herausgeber Speicher geladen werden. Aber die Server-Client (Remote) Zertifikatvalidierer Rückruf nicht durch diese SslPolicyErrors der Suche nach einem RemoteCertificateNotAvailable Fehler.

War es hilfreich?

Lösung

Die Verbindung kommt nicht durch, aber es gibt ein Problem, das ich mit dem statment beschmutzen können:

"Ich lud mein Client-Zertifikat von Trusted Publishers"

Client-Zertifikate normalerweise leben in einem privaten Speicher für ein Benutzerkonto. Das Gleiche gilt für Server-Zertifikate (sie werden wahrscheinlich eine andere Beabsichtigter Zweck OID mit ihnen verbunden haben, obwohl - „Client-Authentifizierung“ vs „Server-Authentifizierung“). Es wäre seltsam für Sie ein Zertifikat mit einem privaten Schlüssel im Speicher Vertrauenswürdige Herausgeber zur Verfügung zu haben, denke ich.

Wenn Sie einen Doppelklick auf einen Client oder Server-Zertifikat in certmgr.msc, sollten Sie sehen ein „Dieses Zertifikat hat eine private Schlüssel“ Nachricht nach unten.

Wenn Sie dies nicht tun, müssen Sie nur eine Hälfte haben Schlüsselpaar - Verschlüsselung und Authentifizierung erfordern den privaten Schlüssel. Das Server-Zertifikat muss einen privaten Schlüssel auf der Serverseite und das Client-Zertifikat muss einen privaten Schlüssel auf der Client-Seite.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top