Certificati SChannel

· Funzionalità

Da sgcWebSockets 4.4.7 è supportato l'uso di certificati con SChannel come libreria crittografica.

L'implementazione SChannel supporta 2 tipi di autenticazione tramite certificato:

1. tramite un certificato PFX

2. impostando l'Hash Thumbprint di un certificato già installato nel sistema Windows.

Certificato PFX 

Un certificato PFX è un file che contiene il certificato e la chiave privata. A volte hai un certificato in formato PEM, quindi prima di usarlo devi convertirlo in PFX.

Usa il comando openssl seguente per convertire un certificato PEM in PFX

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

Una volta che il certificato è in formato PFX, devi solo distribuire il certificato e impostare nella proprietà TLSOptions.Certificate il suo percorso.

 

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

Hash Thumbprint

Se il certificato è già installato nel certificate store di Windows, devi solo conoscere il thumbprint del certificato e impostarlo nella proprietà TLSOptions.SChannel_Options.

Trovare l'hash di un certificato in powershell è semplice come eseguire un comando dir sul container dei certificati.

dir cert:\localmachine\my

L'hash è il valore esadecimale Thumbprint.

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

Una volta ottenuto il valore Thumbprint, devi impostare nella proprietà TLSOptions.SChannel_Options l'hash e dove si trova il certificato.

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