SSL Sertifikası Nasıl Kullanılır? Selenium

⚡ Akıllı Özet

SSL sertifikası hataları bir işlemi durdurur. Selenium Bir tarayıcının güvenilmeyen veya süresi dolmuş bir sertifikayı reddettiği anı test edin; bu nedenle her WebDriver betiğinin, sertifikayı kabul eden ve otomasyonun devam etmesini sağlayan tarayıcıya özgü bir özelliğe ihtiyacı vardır.

  • 🔘 Tanım: SSL, tarayıcı ve sunucu arasındaki trafiği şifreler ve sertifika sunucunun kimliğini kanıtlar.
  • ☑️ Hata tetikleyicisi: Tarayıcılar güvenilmeyen, süresi dolmuş, iptal edilmiş veya kendinden imzalı sertifikaları engeller ve bir uyarı sayfası gösterir.
  • Firefox: A Firefox Profil, sürücü başlamadan önce setAcceptUntrustedCertificates ve setAssumeUntrustedCertificateIssuer ayarlarını yapar.
  • 🧪 Krom: DesiredCapabilities, ACCEPT_SSL_CERTS parametresiyle sertifikayı kabul eder. Selenium 2 ve Selenium 3.
  • Internet Explorer: A JavaKomut dosyası, overridelink öğesine tıklandığında uyarı sayfasını atlar.
  • ⚠️ Selenium 4: ChromeOptions'ta setAcceptInsecureCerts'i ayarlayın. FirefoxOptions veya EdgeOptions, DesiredCapabilities'in yerini almaktadır.

SSL Sertifikası Nasıl Kullanılır? Selenium

SSL Sertifikası Selenium

SSL (Güvenli Yuva Katmanı), sunucu ile tarayıcı olan istemci arasında güvenli bir bağlantı kurmaya yönelik standart bir güvenlik protokolüdür.

SSL sertifikası, sunucu ile istemci uygulaması arasında hareket eden verileri güçlü şifreleme ve dijital imza ile korur. Site sahibi ya bir SSL sertifikası ya da bir kod imzalama sertifikası yükler.

SSL Sertifikasının Faydaları

SSL sertifikası kullanmanın aşağıdaki gibi birçok avantajı vardır:

  • İşletmenin büyümesini hızlı bir şekilde artırmak için kullanıcılarının ve müşterilerinin güveni artırılabilir.
  • Bu sertifikalar, çevrimiçi işlemlerin ve müşterilerin kredi kartı/banka kartı verileri vb. gibi hassas bilgilerinin güvence altına alınmasına yardımcı olur.
  • İmza sertifikası, kullanıcılardan maksimum sayıda indirme ve iyi değerlendirme alma eğilimindedir.

SSL korumalı web siteleri şununla başlar: https:// Bağlantı güvenli bir şekilde kurulmuşsa bir kilit simgesi veya yeşil adres çubuğu görebilirsiniz.

Örneğin internet bankacılığı üzerinden bir işlem yapmak istiyorsanız veya bir satın alma işlemi gerçekleştirmek istiyorsanız Telefon Flipkart gibi e-ticaret sitesi aracılığıyla telefonla veya Amazon.

Web Tarayıcısı ile Sunucu arasında ne olur?

  1. Bir tarayıcı, SSL ile güvenliği sağlanan bir web sitesine bağlanmaya çalışır. Tarayıcı web sunucusundan kendisini tanımlamasını ister
  2. Sunucu tarayıcıya SSL sertifikasının bir kopyasını gönderir
  3. Tarayıcı, SSL sertifikasının orijinal olup olmadığını doğrular. Eğer öyleyse, sunucuya bir mesaj gönderir.
  4. Sunucu, SSL şifreli bir oturum başlatmak için dijital olarak imzalanmış bir bildirimi geri gönderir.
  5. Şifrelenmiş veriler sunucu ve tarayıcı arasında paylaşılır

Kart numaraları ve giriş bilgileri bu oturum üzerinden iletilir, bu nedenle veri alışverişinin baştan sona şifrelenmiş kalması ve ele geçirilememesi gerekir.

Örneğin, aşağıdaki kilit simgesi ve adres çubuğu, sertifikanın kabul edildiğini doğrulamaktadır.

  1. Menşei https://netbanking.hdfcbank.com/netbanking/ .
  2. Enter tuşuna basın.
  3. Tarayıcıda aşağıdaki gibi yeşil bir adres çubuğu göreceksiniz: -

HDFC internet bankacılığı sayfasının SSL ile güvenliği sağlanmış hali için tarayıcıdaki yeşil adres çubuğu.

SSL Sertifikası Nasıl Güvenli Bağlantı Oluşturur?

Aşağıdaki diyagram tracBu, el sıkışmayı ve ardından gelen numaralandırılmış adımları açıklamaktadır.

Bir web tarayıcısı ile bir web sunucusu arasındaki SSL el sıkışmasının şematik gösterimi.

  1. Browser sunucuya HTTPS isteği gönderir.
  2. Artık Sunucunun, güvenilir olduğunu kanıtlamak için Tarayıcıya bazı kimlik bilgileri sağlaması gerekir. Bu, SSL sertifikasının bir kopyasını tarayıcıya göndererek yapılabilir.
  3. Her Tarayıcının kendine ait Güvenilir CA'lar listesi vardır. Tarayıcı, sertifika kökünü güvenilen CA'lar listesine göre kontrol eder ve sertifikanın süresinin dolmadığını, iptal edilmediğini ve ortak adın bağlandığı web sitesi için geçerli olduğunu kontrol eder.
  4. Tarayıcı sertifikaya güveniyorsa sunucu ile tarayıcı arasında şifreli bir oturum oluşturulur.
  5. Sunucu ve Tarayıcı şifreli mesajlar gönderebilir

SSL Sertifika Türleri

Tarayıcı ve sunucu güvenli bir bağlantı kurabilmek için SSL Sertifika mekanizmasını kullanır. Bu bağlantı üç tür sertifikanın doğrulanmasını içerir.

  • Kök
  • Orta seviye
  • Sunucu Sertifikası

SSL Sertifikası alma süreci

SSL sertifikası alma süreci aşağıdaki adımları içerir: -

  1. Öncelikle CSR (Sertifika İmzalama İsteği oluşturma) isteği oluşturmanız gerekir.
  2. CSR isteği, CA (Sertifika Yetkilisi) olarak bilinen SSL sertifikasını veren kuruluşa gönderilen CSR veri dosyasını oluşturur.
  3. CA, sunucunuz için SSL sertifikası oluşturmak amacıyla CSR veri dosyalarını kullanır.
  4. SSL sertifikasını aldıktan sonra sunucunuza yüklemeniz gerekmektedir.
  5. SSL sertifikanızı CA'nın kök sertifikasına bağlayan bir ara sertifikanın da yüklenmesi gerekir.

Aşağıdaki resim üç sertifikanın tümünü temsil etmektedir. Kök, Ara ve Sunucu Sertifikası.

Kök, ara ve sunucu SSL sertifikalarını gösteren sertifika zinciri.

SSL sertifikaları nasıl doğrulanır?

SSL, web sunucusu bilgisayarında ve web sunucusu tarayıcısında bulunan programların ve şifreleme/şifre çözme rutininin bir kombinasyonu yoluyla çalışır.

SSL sertifikası temel olarak aşağıdaki bilgileri içerir.

  1. Konu, web sitesi sahibinin kimliğidir.
  2. Geçerlilik bilgisi - genel ve özel anahtar.

Özel anahtar ve açık anahtar, birbirleriyle benzersiz şekilde ilişkili iki şifreleme anahtarıdır (sayı). Açık anahtarla şifrelenen her şey yalnızca özel anahtarla çözülebilir. Bir tarayıcı, sertifika incelendiğinde aşağıdaki gibi bu alanları gösterir.

Sertifika ayrıntıları paneli; konu, geçerlilik süresi ve genel anahtarı listeler.

Sertifika nedeniyle sunucu ile istemci arasında güvenli bir bağlantı kurulamadığı takdirde aşağıdaki SSL sertifika hatası ortaya çıkacaktır.

SSL Sertifika Hatası Türleri

Diyelim ki bir https isteği yazdınız ve tarayıcı "Bu bağlantı güvenilir değil" veya "Sitenin güvenlik sertifikası güvenilir değil" şeklinde yanıt verdi. Tarayıcı, sunulan sertifika ile güvenli bir bağlantı kuramadığı için işlemi durdurur ve kullanıcıdan uygun önlemleri almasını ister.

Farklı tarayıcılarda sertifika nedeniyle karşılaşmanız muhtemel hata türleri biraz şu şekilde olabilir

  1. AteşFox – Bu bağlantı güvenilmez
  2. Google Chrome – Bu sitenin güvenliği güvenilir değil.
  3. Internet Explorer (IE) – Bu web sitesi tarafından sunulan bu güvenlik sertifikasına güvenilir bir sertifika yetkilisi (CA) tarafından güvenilmiyordu

Aşağıdaki ekran görüntüsü, güvenilmeyen bir sertifikanın ürettiği ara sayfayı göstermektedir.

Geçersiz SSL sertifikası için tarayıcı tarafından gösterilen güvenilmeyen bağlantı uyarı sayfası.

kullanarak SSL Sertifika Hatası nasıl ele alınır? Selenium Web sürücüsü

Varsayalım test komut dosyası Yukarıdaki "Güvenilmeyen Bağlantı" sayfasına yönlendiriliyor. Komut dosyasının, SSL istisnasını kendi başına, tamamen otomatik olarak ele alacak şekilde ayarlanması gerekiyor. otomasyon.

Değişiklik, kullanılan tarayıcı örneğine bağlıdır ve burada istenen özellikler devreye girer. İstenen Özellikler, sürücü örneğini yapılandırır. Selenium ChromeDriver dahil olmak üzere Webdriver, FirefoxSürücü ve Internet Explorer.

Aşağıdaki adımlar şunlara eklenebilir: Selenium Her tarayıcı için "Güvenilmeyen Bağlantı" durumunu temizleyen komut dosyası.

⚠️ Selenium 4 notu: DesiredCapabilities sınıfı kaldırıldı. Selenium 4. Tarayıcı Seçenekleri sınıfları artık aynı ayarı tek bir W3C özelliği aracılığıyla taşıyor. Güvensiz sertifikaları kabul et.

Browser Selenium 4 sınıfı Çağrı
krom Chrome Seçenekleri setAcceptInsecureCerts(true)
Firefox FirefoxSeçenekler setAcceptInsecureCerts(true)
kenar Kenar Seçenekleri setAcceptInsecureCerts(true)
Safari Javascriptvasiyet hükümlerini gerçekleştiren erkek geçici atlama betiği
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
WebDriver driver = new ChromeDriver(options);

SSL Sertifikası Hata İşleme Firefox

SSL sertifikası hatasını işlemek için Firefox, istenilen yetenekleri kullanmamız gerekiyor Selenium Webdriver'a gidin ve aşağıdaki adımları izleyin.

) 1 Adım İlk önce yeni bir tane oluşturmamız gerekiyor Firefox profil söyle "benim profilim".

) 2 Adım Şimdi komut dosyasındaki myProfile dosyasına aşağıdaki gibi erişin ve FirefoxProfil nesnesi.

ProfilesIni prof = new ProfilesIni()				
FirefoxProfile ffProfile= prof.getProfile ("myProfile")

) 3 Adım Şimdi Fire sınıfında “setAcceptUntrustedCertificates” ve “setAssumeUntrustedCertificateIssuer” özelliklerini ayarlamamız gerekiyor. Fox profil.

ffProfile.setAcceptUntrustedCertificates(true) 
ffProfile.setAssumeUntrustedCertificateIssuer(false)

) 4 Adım Şimdi Ateşi kullanFox Ateşteki profilFox sürücü nesnesi.

WebDriver driver = new FirefoxDriver (ffProfile)

Not: "setKabul EdilmeyenSertifikalar" ve "setAssumeUntrustedCertificateIssuer"Web tarayıcılarındaki sertifika hatalarını giderme yetenekleridir."

⚠️ Sürüm notu: Yukarıdaki profil tabanlı kod, hedef kitleyi belirler. Selenium 2 ve Selenium 3. üzerinde Selenium 4. Profil şu yolla eklenir: FirefoxSeçenekler ve Firefox Varsayılan olarak güvenli olmayan sertifikaları kabul eder.

Chrome'da SSL Sertifikası Hatalarının İşlenmesi

Chrome'da SSL hatalarını ele almak için, aşağıdaki DesiredCapabilities nesnesi her SSL sertifikasını kabul eder, böylece kullanıcı çalıştırma sırasında herhangi bir sertifika uyarısı görmez.

DesiredCapaability sınıfının örneğini aşağıdaki gibi oluşturmamız gerekiyor: -

DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome ()       
handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true)
WebDriver driver = new ChromeDriver (handlSSLErr);

⚠️ Sürüm notu: CapabilityType.ACCEPT_SSL_CERTS eski JSON Wire Protokolüne aittir. Çalıştırırken bunu daha önce gösterilen ChromeOptions kod parçasıyla değiştirin. Selenium 4.

IE'de SSL Sertifikası Hata İşleme

Chrome tarayıcısında SSL sertifikalarını kullanmanın aksine ve Firefox, IE'de bunu kullanarak halletmeniz gerekebilir. javascript.

Internet Explorer'da SSL sertifikasını yönetmek için iki yöntem kullanabilirsiniz.

Yöntem 1) Ara sayfada yer alan "Bu web sitesine devam et (önerilmez)" bağlantısına tıklayın. Bu bağlantının kimliği "overridelink"tir; bunu, aşağıdaki ekran görüntüsünde gösterildiği gibi, F12 tuşuyla açılan HTML bölmesinde doğrulayabilirsiniz.

Internet Explorer sertifika uyarısı ve "Bu web sitesine devam et" bağlantısı geçersiz kılma seçeneği

Driver.navigate() yöntemini kullanarak bağlantıya tıklayın. JavaAşağıdaki senaryo şu şekildedir:

driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");

Yöntem 2) İkinci yöntem, Chrome'un SSL işleme koduna oldukça benzer.

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
System.setProperty("webdriver.ie.driver","IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver(capabilities);

Yukarıdaki kod IE'de SSL sertifikası hatasını gidermeye yardımcı olacaktır.

⚠️ Sürüm notu: Internet Explorer 11, Haziran 2022'de kullanımdan kaldırıldı. Aynı senaryoyu şuna karşı çalıştırın: Microsoft Edge EdgeOptions ile veya eski bir uygulamanın hala gerektirdiği durumlarda Edge'i IE modunda çalıştırabilirsiniz.

SSS

Chromium projesi çalışıyor. badssl.comSüresi dolmuş, kendinden imzalı, iptal edilmiş ve yanlış sunucuya ait alt alan adları sunan bir hizmettir. Gerçek bir sertifika hatasını güvenli bir şekilde yeniden üretmek için expired.badssl.com adresine bir test betiği yönlendirin.

Hayır. Selenium 4. sürüm, tarayıcının Options sınıfları lehine bunu kaldırdı. ChromeOptions sınıfını oluşturun, FirefoxSeçenekler veya EdgeOptions nesnesi, setAcceptInsecureCerts(true) çağrısını yapın ve bunu sürücü yapıcısına iletin.

Bir EdgeOptions nesnesi oluşturun, setAcceptInsecureCerts(true) yöntemini çağırın ve bunu EdgeDriver yapıcısına iletin. Bu yöntem Chrome ile eşleşiyor çünkü her iki tarayıcı da Chromium motorunu paylaşıyor.

SafariDriver'da güvenli olmayan sertifikaları kabul etme seçeneği bulunmamaktadır. Kullanın. JavascriptBu, yalnızca o oturum için araya giren uyarıyı temizleyen CertificateWarningController.visitInsecureWebsiteWithTemporaryBypass() işlevini çalıştıracak yürütücüdür.

ERR_CERT_DATE_INVALID süresi dolmuş bir sertifikayı, ERR_CERT_REVOKED iptal edilmiş bir sertifikayı ve ERR_CERT_AUTHORITY_INVALID ise kendinden imzalı bir sertifikayı veya güvenilmeyen bir düzenleyiciyi işaretler. Bu kod, herhangi bir komut dosyasında değişiklik yapmadan önce sorunun nedenini belirtir.

Makine öğrenimi, sertifika hatalarını hata koduna ve sunucuya göre gruplandırarak, süresi dolmuş bir test sertifikasını gerçek bir hatadan ayırır. Bu kümeleme, tek bir ortam sorununun birçok ilgisiz test hatası olarak kaydedilmesini engeller.

Evet. GitHub Yardımcı Pilotu Yorumlardan Options nesnesini ve sürücü yapıcıyı taslak haline getirir, ancak kaldırılan DesiredCapabilities çağrısı yerine setAcceptInsecureCerts'i önerdiğinden emin olun.

Yalnızca test ortamlarında geçerlidir. Tüm sertifikaları kabul etmek, geçerlilik süresi, ana bilgisayar adı ve zincir kusurlarını gizler; bu nedenle, bu bayrağı üretim ortamındaki temel testlerden uzak tutun ve güvenlik test edilirken sertifikayı açıkça doğrulayın.

Bu yazıyı şu şekilde özetleyin: