TsgcWebSocketClient › 事件 › OnSSLVerifyPeer
当 VerifyCertificate 已启用时触发,以便应用程序可以接受或拒绝服务器证书。
property OnSSLVerifyPeer: TsgcOnSSLVerifyPeer;
// TsgcOnSSLVerifyPeer = procedure(Sender: TObject; Certificate: TIdX509; AOk: Boolean; ADepth, AError: Integer; var Accept: Boolean) of object
—
当 TLSOptions.VerifyCertificate 为 True 且选用 OpenSSL 作为 IOHandler 时,OnSSLVerifyPeer 将对服务器提交的证书链中的每个证书触发一次。Certificate 参数公开 X.509 数据,AOk 包含 OpenSSL 自身的验证结果,ADepth 是链中的位置(叶证书为 0),AError 是验证失败时的 OpenSSL 错误代码。将 Accept 设为 True 可信任该证书,设为 False 可中止连接。如果使用 SChannel 而非 OpenSSL,请使用 OnSChannelVerifyPeer。
function OnSSLVerifyPeer(Sender: TObject; Certificate: TIdX509;
AOk: Boolean; ADepth, AError: Integer; var Accept: Boolean);
begin
// ... validate the certificate
if AOk then
Accept := True
else
Accept := False;
end;