TsgcWebSocketHTTPServer › 事件 › 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 会对链中的每个证书触发一次。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;