Wanneer de server vereist dat de client verbinding maakt met een SSL-certificaat, gebruik dan de eigenschap TLSOptions van TsgcWebSocketClient om de certificaatbestanden in te stellen.
Verbinding via SChannel vereist dat TLSOptions.IOHandler = iohSChannel.
SChannel ondersteunt 2 typen certificaatauthenticatie:
1. Using a PFX certificate
2. Het instellen van de Hash van het certificaat van een al geïnstalleerd certificaat in het Windows-systeem.
PFX-certificaat is een bestand dat het certificaat en de privésleutel bevat; soms heeft u een certificaat in PEM-formaat, dus u moet het converteren naar PFX voordat u het kunt gebruiken.
Gebruik het volgende openssl-commando om een PEM-certificaat naar PFX te converteren
openssl pkcs12 -inkey certificate-pem.key -in certificate-pem.crt -export -out certificate.pfx
Zodra het certificaat in PFX-formaat is, hoeft u alleen het certificaat te implementeren en de eigenschap TLSOptions.CertFile in te stellen op het pad ervan.
TLSOptions.IOHandler = iohSChannel
TLSOptions.CertFile = <certificate path>
TLSOptions.Password = <certificate optional password>
Als het certificaat al is geïnstalleerd in het Windows-certificaatarchief, hoeft u alleen de vingerafdruk van het certificaat te kennen en in te stellen via de eigenschap TLSOptions.SChannel_Options.
De hash van een certificaat vinden is in powershell net zo eenvoudig als het uitvoeren van een dir-opdracht op de certificatencontainer.
dir cert:\localmachine\my
De hash is de hexadecimale Thumbprint-waarde.
Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint Subject
---------- -------
C12A8FC8AE668F866B48F23E753C93D357E9BE10 CN=*.mydomain.com
Zodra u de duimafdrukwaarde heeft, moet u de hash en de certificaatlocatie instellen in de eigenschap TLSOptions.SChannel_Options.
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>