Literatur
Zur Beachtung Unter Delphi 2009 funktioniert die unten angegebene Funktion testCert zwar, aber der Zugriff auf einen anderen Server lieferte nur 403 Forbidden. Unter Delphi 10 Tokyo funktioniert der Zugriff immer.
Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM
openssl pkcs12 -in zugang.p12 -out zugang.pem -nodes
in Delphi
uses
SysUtils, Classes, Forms, IdHTTP, IdSSLOpenSSL, idGlobal,
Controls, ComCtrls, ToolWin, StdCtrls;
function TForm1.testCert: boolean; var IdHTTP1 : TIdHTTP; Id_HandlerSocket : TIdSSLIOHandlerSocketOpenSSL; cert:string; s : string; begin try me.Clear; IdHTTP1 := TIdHTTP.Create( self ); IdHTTP1.Request.BasicAuthentication := False; IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0'; Id_HandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create( IdHTTP1 ); cert := 'zugang.pem'; Id_HandlerSocket.SSLOptions.CertFile := cert; ( PEM contain both CERT and Key ) Id_HandlerSocket.SSLOptions.KeyFile := cert;
Id_HandlerSocket.SSLOptions.Mode := sslmClient;
Id_HandlerSocket.SSLOptions.Method := sslvSSLv23;
IdHTTP1.IOHandler := Id_HandlerSocket;
me.Add( Id_HandlerSocket.SSLOptions.CertFile );
s := IdHTTP1.Get( 'https://www.scriptjunkie.us/auth/verifycert' );
me.Add( s );
Result:=True;
finally
Id_HandlerSocket.Free;
IdHTTP1.Free;
end;
end;
Tags: Delphi-Programmierung Linux-Scripte