TsgcWebSocketProxyServer › イベント › OnSSLVerifyPeer
VerifyCertificateが有効で、下流のクライアントが受け入れまたは拒否される証明書を提示したときに発生します。
property OnSSLVerifyPeer: TsgcOnSSLVerifyPeer;
// TsgcOnSSLVerifyPeer = procedure(Sender: TObject; Certificate: TIdX509; AOk: Boolean; ADepth, AError: Integer; var Accept: Boolean) of object
—
SSLOptions.VerifyCertificate が True で、ダウンストリームのクライアントが TLS ハンドシェイク中に証明書を提供した場合、OnSSLVerifyPeer はチェーン内の各証明書に対して 1 回発生します。Certificate パラメーターは X.509 データを公開し、AOk は TLS レイヤーからの検証結果、ADepth はチェーン内の位置(リーフは 0)、AError は検証失敗時のエラーコードです。証明書を信頼するには Accept を True に、接続を中断するには False に設定します。クライアントが証明書を提示しない場合はイベントは発生しません。クライアント証明書を強制するには SSLOptions.VerifyCertificate_Options.FailIfNoCertificate を True に設定してください。
function OnSSLVerifyPeerEvent(Sender: TObject; Certificate: TIdX509;
AOk: Boolean; ADepth, AError: Integer; var Accept: Boolean);
begin
// ... validate the certificate
if Certificate_OK then
Accept := True
else
Accept := False;
end;