Indy POP3与无效的证书
问题描述:
我有一个使用Indy的POP3客户端,这很好连接,但我需要在证书无效时中止连接。任何人有想法?Indy POP3与无效的证书
procedure Tpop3client.connectPOP3;
var
status : Boolean;
I, msgTotal : Integer;
begin
if edSSL then begin
POP3.IOHandler := SSL;
POP3.UseTLS := utUseExplicitTLS;
end;
status := False;
try
POP3.Username := eduserName;
POP3.Password := edpassWord;
POP3.Connect(edtargetHost,edtargetPort);
if POP3.Connected then begin
msgTotal := POP3.CheckMessages;
if msgTotal >=1 then
for I := 1 to msgTotal do begin
if getMessage(I) then
begin
getHeaders;
delMessage(I)
end;
end
end;
finally
POP3.Disconnect
end;
end;
答
在TIdSSLIOHandlerSocketOpenSSL
组件,能够在SSLOptions.VerifyMode
财产sslvrfPeer
标志,如果你想验证超越OpenSSL的默认验证服务器证书的具体细节的处理程序可选择分配到OnVerifyPeer
事件。如果验证失败,SSL/TLS握手将以错误警报终止,连接将被关闭,并且会在您的代码中引发异常。