Il server può essere configurato per utilizzare certificati SSL. Per ottenere un server di produzione con un certificato del server, deve acquistare un certificato da un provider rinomato: Namecheap, GoDaddy, Thawte, ecc. Per scopi di test può utilizzare un certificato autofirmato (controlli l'esempio Demos/Chat che utilizza un certificato autofirmato). Legga il seguente articolo Come creare un certificato autofirmato.
Una volta ottenuto il certificato, è necessario configurare il server per specificare quale certificato utilizzare per la cifratura delle connessioni.
Per prima cosa è necessario conoscere l'hash del proprio certificato. Trovare l'hash di un certificato è semplice in powershell eseguendo un comando dir sul contenitore dei certificati.
dir cert:\localmachine\my
L'hash è il valore Thumbprint esadecimale.
Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint Subject
---------- -------
C12A8FC8AE668F866B48F23E753C93D357E9BE10 CN=*.mydomain.com
Una volta ottenuto il valore Thumbprint, è sufficiente impostarlo nella proprietà TsgcWebSocketServer_HTTPAPI.TLSOptions.Hash.
Una volta impostato l'hash, è sufficiente impostare TsgcWebSocketServer_HTTPAPI.SSL = true e il server è pronto per avviarsi.
Se si desidera registrare il certificato manualmente utilizzando netsh, usare il seguente comando:
netsh http add sslcert ipport=<IP>:<PORT> certhash=<THUMBPRINT> appid="{<GUID>}"
<IP>: Specifica l'indirizzo IP locale per il binding. Non utilizzi un binding con wildcard. Utilizzi un indirizzo IP valido.
<PORT>: Specifica la porta per il binding.
<THUMBPRINT>: Il thumbprint del certificato X.509.
<GUID>: Un GUID generato dallo sviluppatore per rappresentare l'app a scopo informativo.