TsgcWebSocketProxyServer › Events › 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;