开发环境Delphi XE11.3
仅仅是测试
Unit
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdSSLOpenSSL, IdHTTP, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); private procedure CheckCertificateValidity; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := ''; CheckCertificateValidity; end; procedure TForm1.CheckCertificateValidity; var HTTP: TIdHTTP; SSL: TIdSSLIOHandlerSocketOpenSSL; CertValidStart, CertValidExpire: TDateTime; begin HTTP := TIdHTTP.Create(nil); SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil); try SSL.SSLOptions.SSLVersions := [sslvSSLv2, sslvSSLv23, sslvSSLv3, sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2]; HTTP.IOHandler := SSL; HTTP.AllowCookies := True; HTTP.HandleRedirects := True; HTTP.Request.ContentType := 'application/x-www-form-urlencoded'; HTTP.Request.Charset := 'UTF-8'; HTTP.ConnectTimeout := 3000; HTTP.Get(Edit1.Text); CertValidStart := SSL.SSLSocket.PeerCert.notBefore; CertValidExpire := SSL.SSLSocket.PeerCert.notAfter; Label1.Caption := '证书有效期:' + FormatDateTime('yyyy-mm-dd hh:nn:ss', SSL.SSLSocket.PeerCert.notBefore)+ '到' +FormatDateTime('yyyy-mm-dd hh:nn:ss', SSL.SSLSocket.PeerCert.notAfter) finally SSL.Free; HTTP.Free; end; end; end.
Form
object Form1: TForm1 Left = 0 Top = 0 BorderIcons = [biSystemMenu] Caption = #35777#20070#26377#25928#24615#26816#27979 ClientHeight = 157 ClientWidth = 558 Color = clBtnFace Constraints.MaxHeight = 195 Constraints.MaxWidth = 570 Constraints.MinHeight = 195 Constraints.MinWidth = 570 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = 'Segoe UI' Font.Style = [] Position = poScreenCenter TextHeight = 15 object Label1: TLabel Left = 24 Top = 112 Width = 513 Height = 15 Alignment = taCenter AutoSize = False end object Button1: TButton Left = 240 Top = 64 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 0 OnClick = Button1Click end object Edit1: TEdit Left = 8 Top = 24 Width = 542 Height = 23 TabOrder = 1 Text = 'https://test.123456.com/' end end