Skip to main content
Skip table of contents

TbeCBCertificateInfo

Die Klasse TbeCBCertificateInfo dient zu Verifizierung einem SSL (HTTPS) Zertifikat.

Eigenschaften

Beschreibung

CbSender:O

Objekt der TbeCbHTTP, TbeCBHTTPGet oder andere Klasse

CbDepth:N

SSL-Certificate Depth. Wenn Tiefe 1 nicht gültig ist, wird nicht gültig auch Tiefe 0. Zertifikat sind validiert von runter oben.

CbVersion:N

Version des Zertifikats

CbSerialNumber:C

Hexadecimal Serien-Nummer

CbSignatureAlgorithmAsNID:N

SSL-Name ID's

CbSignatureAlgorithmAsString:C

SSL-Long Names

CbIssuerString:C

Aussteller des Zertifikats

CbValidFromInGMT:D

Gültig-Von im GMT-Zeit

CbValidToInGMT:D

Gültig-Bis im GMT-Zeit

CbSubjectString:C

Eigentümer des Zertifikats

CbThumbprintAsMD5:L

Thumbprint = Daumenabdruck des Zertifikats als MD5 Hash

CbThumbprintAsSHA1:C

Thumbprint = Daumenabdruck des Zertifikats als SHA1 Hash

CbThumbprintAsSHA256:C

Thumbprint = Daumenabdruck des Zertifikats als SHA256 Hash

CbErrorValue

Verifizierung-Fehler, falls keine Fehler während der Verifizierung passiert, wird dies Wert 0 haben

CbErrorString

Verifizierung-Fehler im lesbaren Format, falls keine Fehler während der Verifizierung passiert, wird dies leer Wert haben

CbAccepted:L

Ausgabe-Wert, könnte auf False gesetzt werden, falls wir sollen dieses Zertifikat ablehnen. Könnte auch False von Anfang haben, falls den Zertifikat nicht gültig ist, und er würde automatisch abgelehnt.

CbType:N

Typ der Verifizierung - je nach Typ sind verschiedene Eigenschaften zur Verfügung gestellt
bccitSSL - 0
bccitSSH - 1
bccitSSLforPOP3 - 2
bccitSSLforSMTP - 3

CbURL:CAufgerufener URL - falls vorhanden


Funktionen / Methoden


CbSaveToFile(sFileName:S)

Speichert Certificate zum eingegeben *.pem Datei. Die Datei wird überschrieben.

Diese Funktion ist für den typ bccitSSH nicht zur Verfügung gestellt.

Beispiel

CODE
function HTTPSValidate(oCert:O),
  Writeln('**************************'),
  Writeln('Depth: ' + Str(oCert.CbDepth)),
  Writeln('Version: ' + Str(oCert.CbVersion)),
  Writeln('SerialNumber: ' + oCert.CbSerialNumber),
  Writeln('SignatureAlgorithmAsNID: ' + Str(oCert.CbSignatureAlgorithmAsNID)),
  Writeln('SignatureAlgorithmAsString: ' + oCert.CbSignatureAlgorithmAsString),
  Writeln('IssuerString: ' + oCert.CbIssuerString),
  Writeln('ValidFromInGMT: ' + DToS(oCert.CbValidFromInGMT)),
  Writeln('ValidToInGMT: ' + DToS(oCert.CbValidToInGMT)),
  Writeln('SubjectString: ' + oCert.CbSubjectString),
  Writeln('ThumbprintAsMD5: ' + oCert.CbThumbprintAsMD5),
  Writeln('ThumbprintAsSHA1: ' + oCert.CbThumbprintAsSHA1),
  Writeln('ThumbprintAsSHA256: ' + oCert.CbThumbprintAsSHA256),
  Writeln('Von SSL Accepted: ' + iif(oCerificate.CbAccepted, 'true', 'false')),
  Writeln('Error: ' + Str(oCerificate.CbErrorValue)),
  Writeln('ErrorString: ' + oCerificate.CbErrorString),

  oCert.CbSaveToFile('C:\temp\cert\' + oCert.CbThumbprintAsMD5 + '.pem'),
  oCert.CbAccepted := true,
end,

function HTTPSDeny(oCert:O)
  oCert.CbAccepted := false,
end,


//******************************************************************************
// Liefert als Ergebnis den Inhalt der HTML-Seite
//   Im Fehlerfall enthält cHTTPGetResult alle verfügbaren Informationen
//   über den aufgetretenen Fehler.
//   Im Fall von einem Redirect, ist der Inhalt der neue HTML-Seite das Ergebnis
//******************************************************************************
function HTTPSRequest(lUseRedirect:L, lAllowRedirect:L, cValidate:C)
|cURL, oHTTP, cDivider, cResult|

   cResult  := '',
   cURL     := 'https://www.google.com',
   cDivider := Replicate('-', 80),

   oHTTP    := CreateObject('TBeCbHTTP', 'MyHttp'),
   startseq,
     oHTTP.CbConnectTimeout := 2000,
     oHTTP.CbReadTimeout    := 2000,
     oHTTP.CbUserAgent      := 'Mozilla/4.0 (compatible)',
     CollAdd(oHTTP.CbHeaders, 'be-test:beheader'),

     case cValidate
       of 'event'::
         AssignEvent(oHTTP, 'CbOnValidateCertificate', 'HTTPSValidate'),
       of 'no-event'::
         AssignEvent(oHTTP, 'CbOnValidateCertificate', 'HTTPSDeny'),
       otherwise
         oHTTP.CbValidateServerCertificate := false
     endcase,

     startseq
        if lUseRedirect then
           oHTTP.CbGetURLHandleRedirects(cURL, lAllowRedirect),
        else
           oHTTP.CbGetURL(cURL), // HTTP-Request auslösen
        endif,

        cResult := oHTTP.CbHTTPBody,
     onerror
        cResult :=
           GetErrorText()                                              + crlf + cDivider + crlf +
           'ErrorHTTPStatusCode = ' + Str(oHTTP.CbErrorHTTPStatusCode) + crlf + cDivider + crlf +
           'ErrorHTTPStatusText = ' +     oHTTP.CbErrorHTTPStatusText  + crlf + cDivider + crlf +
           'ErrorHTTPBody       = ' +     oHTTP.CbErrorHTTPBody,
     stopseq,
   always,
     DestroyObject(oHTTP),
   stopseq,

   Result := cResult,
end,

writeln('--- Verifizierung durch Event ---'),
writeln( HTTPSRequest(true, true, 'event') ),

writeln('--- Keine Verifizierung ---'),
writeln( HTTPSRequest(true, true, '') ),

writeln('--- Verifizierung abgelehnt ---'),
writeln( HTTPSRequest(true, true, 'no-event') ),

Weitere Verknüpfungen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.