sgcWebSockets 4.4.7 から、SChannel を暗号ライブラリとして使用した証明書の利用がサポートされています。
SChannel 実装は 2 種類の証明書認証をサポートします。
1. PFX 証明書を使用する
2. Windows システムにすでにインストールされている証明書のハッシュサムプリントを設定する
PFX Certificate
PFX 証明書は証明書と秘密鍵を含むファイルです。PEM 形式の証明書をお持ちの場合は、使用前に PFX に変換する必要があります。
PEM 証明書を PFX に変換するには次の openssl コマンドを使用します。
openssl pkcs12 -inkey certificate-pem.key -in certificate-pem.crt -export -out certificate.pfx
証明書が PFX 形式になったら、証明書をデプロイし、TLSOptions.Certificate プロパティにそのパスを設定するだけです。
TLSOptions.IOHandler := iohSChannel; TLSOptions.CertFile := '<certificate path>'; TLSOptions.Password := '<certificate optional password>';
Hash Thumbprint
証明書が Windows の証明書ストアにすでにインストールされている場合は、証明書のサムプリントを確認して TLSOptions.SChannel_Options プロパティに設定するだけです。
証明書のハッシュを確認するには、PowerShell で証明書コンテナーに対して dir コマンドを実行するだけです。
dir cert:\localmachine\my
The hash is the hexadecimal Thumbprint value.
Directory: Microsoft.PowerShell.Security\Certificate::localmachine\myThumbprint Subject---------- -------C12A8FC8AE668F866B48F23E753C93D357E9BE10 CN=*.mydomain.com
Thumbprint の値を取得したら、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>';
