SChannel Certificates

· Funkcje

Od sgcWebSockets 4.4.7 obsługiwane jest używanie certyfikatów z SChannel jako biblioteką kryptograficzną.

Implementacja SChannel obsługuje 2 typy uwierzytelniania certyfikatów:

1. Użycie certyfikatu PFX

2. Ustawienie skrótu Thumbprint już zainstalowanego certyfikatu w systemie Windows.

PFX Certificate 

Certyfikat PFX to plik zawierający certyfikat i klucz prywatny. Jeśli masz certyfikat w formacie PEM, musisz go najpierw przekonwertować do formatu PFX.

Użyj następującego polecenia openssl, aby przekonwertować certyfikat PEM do formatu PFX

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

Gdy certyfikat jest w formacie PFX, wystarczy wdrożyć certyfikat i ustawić ścieżkę do niego we właściwości TLSOptions.Certificate.

 

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

Hash Thumbprint

Jeśli certyfikat jest już zainstalowany w magazynie certyfikatów Windows, wystarczy znać odcisk palca certyfikatu i ustawić go we właściwości TLSOptions.SChannel_Options.

Znalezienie skrótu certyfikatu w powershell jest tak proste jak uruchomienie polecenia dir na kontenerze certyfikatów.

dir cert:\localmachine\my

Skrót to wartość szesnastkowa Thumbprint.

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

Gdy masz wartość Thumbprint, musisz ustawić we właściwości TLSOptions.SChannel_Options skrót i lokalizację certyfikatu.

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>';