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는 체인의 위치(leaf는 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;