TsgcWebSocketClient | Certificates SChannel

Wenn der Server verlangt, dass sich der Client mit einem SSL-Zertifikat verbindet, verwenden Sie die TLSOptions-Eigenschaft von TsgcWebSocketClient, um die Zertifikatsdateien festzulegen.

 

Die Verbindung über SChannel erfordert, dass TLSOptions.IOHandler = iohSChannel.

 

SChannel unterstützt 2 Arten der Zertifikatsauthentifizierung:

 

1. Verwendung eines PFX-Zertifikats

2. Setzen des Hash-Zertifikats eines bereits im Windows-System installierten Zertifikats.

 

PFX-Zertifikat

Das PFX-Zertifikat ist eine Datei, die das Zertifikat und den privaten Schlüssel enthält. Manchmal haben Sie ein Zertifikat im PEM-Format, sodass Sie es vor der Verwendung in PFX konvertieren müssen.

Verwenden Sie den folgenden openssl-Befehl, um ein PEM-Zertifikat in PFX zu konvertieren

 


openssl pkcs12 -inkey certificate-pem.key -in certificate-pem.crt -export -out certificate.pfx

Sobald das Zertifikat im PFX-Format vorliegt, müssen Sie nur noch das Zertifikat bereitstellen und die Eigenschaft TLSOptions.CertFile auf seinen Pfad setzen.

 


TLSOptions.IOHandler = iohSChannel
TLSOptions.CertFile = <certificate path>
TLSOptions.Password = <certificate optional password>

 

Zertifikat hashen

Wenn das Zertifikat bereits im Windows-Zertifikatspeicher installiert ist, müssen Sie nur den Zertifikat-Thumbprint kennen und ihn in der Eigenschaft TLSOptions.SChannel_Options festlegen.

 

Den Hash eines Zertifikats zu finden ist in powershell so einfach wie das Ausführen eines dir-Befehls auf dem Zertifikatcontainer.

dir cert:\localmachine\my

Der Hash ist der hexadezimale Thumbprint-Wert.


Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint                                Subject
----------                                -------
C12A8FC8AE668F866B48F23E753C93D357E9BE10  CN=*.mydomain.com

Sobald Sie den Thumbprint-Wert haben, müssen Sie den Hash und den Zertifikatsspeicherort in der Eigenschaft TLSOptions.SChannel_Options festlegen.


TLSOptions.IOHandler = iohSChannel
TLSOptions.SChannel_Options.CertHash = <certificate thumbprint>
TLSOptions.SChannel_Options.CertStoreName = <certificate store name>
TLSOptions.SChannel_Options.CertStorePath = <certificate store path>
TLSOptions.Password = <certificate optional password>