Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bir Sitenin SSL sürelerini çekmek
#1
Bir sitenin SSL bitiş süresini nasıl edinebilirim. c# tarafında basitçe alabiliyorum ama Delphi tarafında beceremedim.
Clever komponentleri kullanıyorum.
WWW
Cevapla
#2
(15-10-2024, Saat: 12:13)yhackup Adlı Kullanıcıdan Alıntı: Bir sitenin SSL bitiş süresini nasıl edinebilirim. c# tarafında basitçe alabiliyorum ama Delphi tarafında beceremedim.
Clever komponentleri kullanıyorum.

Merhabalar,

Bir örnek mevcut. İnceleyebilirsiniz.




.zip   ssl-test.zip (Dosya Boyutu: 890,17 KB / İndirme Sayısı: 8)

   
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
Teşekkür ederim ama dll dağıtmak istemiyorum.
WWW
Cevapla
#4
(15-10-2024, Saat: 14:37)yhackup Adlı Kullanıcıdan Alıntı: Teşekkür ederim ama dll dağıtmak istemiyorum.

   
Begin : = end / 2;
Cevapla
#5
(15-10-2024, Saat: 15:48)RAD Coder Adlı Kullanıcıdan Alıntı:
(15-10-2024, Saat: 14:37)yhackup Adlı Kullanıcıdan Alıntı: Teşekkür ederim ama dll dağıtmak istemiyorum.


Fikir vermesi açısından


procedure GetSSLCertExpiration(const AHost: string; APort: Integer);
var
  IdHTTP: TIdHTTP;
  IdSSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  IdHTTP := TIdHTTP.Create(nil);
  IdSSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
    // SSL Handler ayarları
    IdSSLHandler.SSLOptions.Method := sslvTLSv1_2; // TLS 1.2 kullanarak bağlantı
    IdHTTP.IOHandler := IdSSLHandler;

    try
      IdHTTP.Head('https://' + AHost + ':' + IntToStr(APort));

      if Assigned(IdSSLHandler.SSLSocket.PeerCert) then
      begin
        ShowMessage('SSL Sertifika Bitiş Tarihi: ' + DateTimeToStr(IdSSLHandler.SSLSocket.PeerCert.NotAfter));
      end
      else
      begin
        ShowMessage('Sertifika bulunamadı!');
      end;
    except
      on E: Exception do
        ShowMessage('Hata: ' + E.Message);
    end;
  finally
    IdHTTP.Free;
    IdSSLHandler.Free;
  end;
end;



procedure TMainForm.Button1Click(Sender: TObject);
begin
  GetSSLCertExpiration('www.google.com', 443); // Örnekte google.com SSL sertifikası kontrol ediliyor
end;


GetSSLCertExpiration('www.delphican.com', 8443); // Farklı bir port kullanıyorsan o portu belirt


uses   IdSSLOpenSSL, IdHTTP, IdSSL;
Cevapla
#6
(15-10-2024, Saat: 15:48)RAD Coder Adlı Kullanıcıdan Alıntı: //


Teşekkürler işimi çözdü.

(15-10-2024, Saat: 19:18)Kral Adlı Kullanıcıdan Alıntı: Fikir vermesi açısından

Teşekkürler, Feshi abinin kod daha kullanışlı geldi.
WWW
Cevapla
#7
(15-10-2024, Saat: 19:18)Kral Adlı Kullanıcıdan Alıntı: Fikir vermesi açısından


procedure GetSSLCertExpiration(const AHost: string; APort: Integer);
var
  IdHTTP: TIdHTTP;
  IdSSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  IdHTTP := TIdHTTP.Create(nil);
  IdSSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
    // SSL Handler ayarları
    IdSSLHandler.SSLOptions.Method := sslvTLSv1_2; // TLS 1.2 kullanarak bağlantı
    IdHTTP.IOHandler := IdSSLHandler;

    try
      IdHTTP.Head('https://' + AHost + ':' + IntToStr(APort));

      if Assigned(IdSSLHandler.SSLSocket.PeerCert) then
      begin
        ShowMessage('SSL Sertifika Bitiş Tarihi: ' + DateTimeToStr(IdSSLHandler.SSLSocket.PeerCert.NotAfter));
      end
      else
      begin
        ShowMessage('Sertifika bulunamadı!');
      end;
    except
      on E: Exception do
        ShowMessage('Hata: ' + E.Message);
    end;
  finally
    IdHTTP.Free;
    IdSSLHandler.Free;
  end;
end;



procedure TMainForm.Button1Click(Sender: TObject);
begin
  GetSSLCertExpiration('www.google.com', 443); // Örnekte google.com SSL sertifikası kontrol ediliyor
end;


GetSSLCertExpiration('www.delphican.com', 8443); // Farklı bir port kullanıyorsan o portu belirt


uses   IdSSLOpenSSL, IdHTTP, IdSSL;

libeay32.dll ve ssleay32.dll gerekli. Aşağıdaki yapay zeka koduna çok benziyor.

uses
 IdHTTP, IdSSL, IdSSLOpenSSL, SysUtils;

function GetSSLCertificateExpiryDate(const AHost: string): TDateTime;
var
 IdHTTP: TIdHTTP;
 SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
 IdHTTP := TIdHTTP.Create(nil);
 SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
 try
   IdHTTP.IOHandler := SSLHandler;
   IdHTTP.HandleRedirects := True;

   // Bağlantı SSL sertifikasını zorlar
   SSLHandler.SSLOptions.Method := sslvTLSv1_2;
   SSLHandler.SSLOptions.Mode := sslmClient;

   try
     // HTTPS bağlantısı yapılır
     IdHTTP.Head('https://' + AHost);

     // Sertifika bilgilerini al
     if Assigned(SSLHandler.SSLSocket) and Assigned(SSLHandler.SSLSocket.PeerCert) then
     begin
       Result := SSLHandler.SSLSocket.PeerCert.NotAfter;
     end
     else
       raise Exception.Create('SSL sertifikası alınamadı.');
   except
     on E: Exception do
       raise Exception.Create('Bağlantı sırasında hata oluştu: ' + E.Message);
   end;

 finally
   IdHTTP.Free;
   SSLHandler.Free;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 ExpiryDate: TDateTime;
begin
 try
   ExpiryDate := GetSSLCertificateExpiryDate('www.example.com');  // Sitenin domain adını girin
   ShowMessage('Sertifika son kullanma tarihi: ' + DateTimeToStr(ExpiryDate));
 except
   on E: Exception do
     ShowMessage('Hata: ' + E.Message);
 end;
end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Belirli sayıda kayıt çekmek cinarbil 2 1.109 17-05-2024, Saat: 08:35
Son Yorum: cinarbil
  .ini uzantısından ip ayarı çekmek bengoz 2 1.196 06-12-2023, Saat: 23:49
Son Yorum: 3ddark
  Delphi ile Data Çekmek omerctlbs 2 1.687 29-04-2022, Saat: 11:10
Son Yorum: bydelphi
  Webden Bir Alandan Veri Çekmek akissoftware 19 13.618 05-12-2021, Saat: 22:05
Son Yorum: engerex
  Parmak izi okuyucudan veri çekmek ermanispir@gmail.com 15 14.205 30-11-2020, Saat: 09:26
Son Yorum: shooterman



Konuyu Okuyanlar: 1 Ziyaretçi