SChannel 証明書

· 機能

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\my
Thumbprint 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>';