자동화테스트/Selenium2018. 12. 20. 08:00

SSL (Secure Socket Layer) 인증서는 강력한 암호화 표준 또는 디지털 서명을 사용하여 서버 및 클라이언트 응용 프로그램에서 데이터를 안전하게 변환합니다. 하나는 SSL 인증서 또는 코드 서명 인증서를 설치해야합니다.








이 튜토리얼에서는,

SSL 인증서 란 무엇입니까?

SSL (Secure Sockets Layer)은 브라우저 인 서버와 클라이언트간에 보안 연결을 설정하기위한 표준 보안 프로토콜입니다.

SSL 인증서를 사용하면 여러 가지 장점이 있지만,

  • 기업의 성장을 빠르게 향상시키기 위해 사용자와 고객의 신뢰를 높일 수 있습니다.
  • 이 인증서는 신용 카드 / 직불 카드 데이터 등의 민감한 정보와 온라인 거래를 안전하게 보호합니다.
  • 서명 인증서는 사용자가 다운로드하고 좋은 리뷰를 얻을 수있는 경향이 있습니다.

SSL 보안 웹 사이트는 https : //로 시작되며 연결이 안전하게 설정된 경우 잠금 아이콘이나 녹색 주소 표시 줄을 볼 수 있습니다.

예를 들어, 넷 뱅킹을 통해 거래를하거나 플립 카트 (Flipkart) 또는 아마존 (Amazon)과 같은 전자 상거래 사이트를 통해 휴대 전화 를 구매하려는 경우 .

웹 브라우저와 서버간에 어떤 일이 발생합니까?

  1. 브라우저가 SSL로 보호 된 웹 사이트에 연결을 시도합니다. 브라우저는 웹 서버에 자신을 식별하도록 요청합니다.
  2. 서버는 브라우저에 SSL 인증서 사본을 보냅니다.
  3. 브라우저는 SSL 인증서가 정품인지 여부를 확인합니다. 그렇다면 서버로 메시지를 보냅니다.
  4. 서버는 디지털 서명 된 확인 응답을 보내 SSL 암호화 세션을 시작합니다.
  5. 암호화 된 데이터는 서버와 브라우저간에 공유됩니다.

그렇게하면 신용 카드 번호 또는 로그인 자격 증명과 같은 민감한 정보를 전송해야하며 해킹되거나 가로 챌 수 없도록 안전하게 전송해야합니다.

예를 들어

  1. https://netbanking.hdfcbank.com/netbanking/을 입력 하십시오 .
  2. Enter를 누르십시오.
  3. 브라우저에 다음과 같이 녹색 주소 표시 줄이 나타납니다. -

Selenium에서 SSL 인증서 오류 처리

SSL 인증서가 보안 연결을 만드는 방법

Selenium에서 SSL 인증서 오류 처리

  1. 브라우저가 HTTPS 요청을 서버로 전송합니다.
  2. 이제 서버는 신뢰할 수 있음을 증명하기 위해 브라우저에 식별 정보를 제공해야합니다. SSL 인증서 복사본을 브라우저에 보내면됩니다.
  3. 각 브라우저에는 신뢰할 수있는 CA 목록이 있습니다. 브라우저는 인증서 루트를 신뢰할 수있는 CA 목록과 대조하여 인증서가 만료되지 않고 그대로 유지되고 연결되어있는 웹 사이트에 대한 일반 이름이 유효한지 확인합니다.
  4. 브라우저가 인증서를 신뢰하면 서버와 브라우저간에 암호화 된 세션이 만들어집니다.
  5. 서버 및 브라우저에서 암호화 된 메시지를 보낼 수 있음

SSL 인증서 유형

브라우저와 서버는 SSL 인증서 메커니즘을 사용하여 보안 연결을 설정할 수 있습니다. 이 연결에는 세 가지 유형의 인증서 확인이 포함됩니다.

  • Root
  • Intermediate
  • Server Certificate

SSL 인증서를받는 과정

SSL 인증서를받는 과정은 다음 단계를 포함합니다 : -

  1. 먼저 CSR (인증서 서명 요청 작성) 요청을 작성해야합니다.
  2. CSR 요청은 CSR 데이터 파일을 생성합니다.이 파일은 CA (Certificate Authority)라는 SSL 인증서 발행자에게 전송됩니다.
  3. CA는 CSR 데이터 파일을 사용하여 서버에 대한 SSL 인증서를 만듭니다.
  4. SSL 인증서를받은 후에는 서버에 설치해야합니다.
  5. SSL 인증서를 CA의 루트 인증서와 연결하는 중간 인증서도 설치해야합니다.

아래 이미지는 Root, Intermediate, and Server Certificate의 세 가지 인증서를 모두 나타냅니다 .

Selenium에서 SSL 인증서 오류 처리

SSL 인증서 확인 방법

SSL은 웹 서버 컴퓨터 및 웹 서버 브라우저에있는 프로그램 및 암호화 / 암호 해독 루틴의 조합을 통해 작동합니다.

SSL 인증서는 기본적으로 아래 정보를 포함합니다.

  1. 웹 사이트 소유자의 신원을 나타내는 제목.
  2. 유효성 정보 - 공개 키 및 개인 키.

개인 및 공개 키는 고유하게 관련된 두 개의 암호화 키 (숫자)입니다. 공개 키에 의해 암호화되는 것은 무엇이든 개인 키에 의해서만 해독 될 수 있습니다.

Selenium에서 SSL 인증서 오류 처리

인증서로 인해 서버와 클라이언트간에 보안 연결이 설정되지 않은 경우 SSL 인증서 오류가 발생합니다.

SSL 인증서 오류 유형

브라우저에 https 요청을 입력하고 사용중인 브라우저에 따라 "This connection is untrusted"또는 "site 's security certificate not trusted"와 같은 메시지가 표시된다고 가정하십시오. 그런 오류는 SSL 인증서 오류의 영향을받습니다.

이제 브라우저가 요청 된 인증서와의 보안 연결을 설정할 수없는 경우 브라우저는 아래와 같이 "신뢰할 수없는 연결"예외를 throw하고 사용자에게 적절한 조치를 취하도록 요청합니다.

여러 브라우저의 인증서로 인해 볼 수있는 오류 유형은 다음과 같을 수 있습니다.

  1. FireFox -이 연결은 신뢰할 수 없습니다.
  1. Google 크롬 -이 사이트 보안은 신뢰할 수 없습니다.
  1. Internet Explorer (IE) -이 웹 사이트에서 제공하는이 보안 인증서는 신뢰할 수있는 인증 기관 (CA)에서 신뢰하지 않았습니다.

Selenium에서 SSL 인증서 오류 처리

Selenium Webdriver를 사용하여 SSL 인증서 오류를 처리하는 방법

우리가 테스트 스크립트를 작성했다고 가정하고 스크립트를 실행하는 동안 우리는 자동화를 통해 어떻게 예외를 처리 할 것인가에 대해 "신뢰할 수없는 연결"이상의 상황을 파악했습니다.

이 경우 자체적으로 SSL 예외를 처리 할 수 ​​있도록 스크립트를 조정해야합니다.

스크립트는 사용중인 브라우저 인스턴스의 유형에 따라 수정해야합니다. 원하는 기능이 등장 할 때 이러한 기능이 제공됩니다.

Desired Capabilities는 Selenium Webdriver의 드라이버 인스턴스를 구성하는 데 사용됩니다. Desired Capabilities를 통해 ChromeDriver, FirefoxDriver 및 Internet Explorer와 같은 모든 드라이버 인스턴스를 구성 할 수 있습니다.

현재로서는 위의 시나리오를 작성하기위한 특정 URL이 없지만 Selenium 스크립트에 추가 할 수있는 단계를 제공하여 위의 상황 인 "신뢰할 수없는 연결"을 처리합니다.

Firefox에서 SSL 인증서 오류 처리

Firefox에서 SSL 인증서 오류를 처리하려면 Selenium Webdriver에서 원하는 기능을 사용해야하고 다음 단계를 수행해야합니다.

1 단계) : 먼저 " myProfile " 이라고하는 새로운 파이어 폭스 프로파일을 만들어야합니다 당신은 "파이어 폭스 프로파일을 만드는 방법"을 배우기 위해 구글을 참조 할 수 있습니다. 그것은 간단하고 쉽습니다.

2 단계) : 이제 스크립트에서 myProfile에 액세스하여 FirefoxProfile 객체를 만듭니다.

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

3 단계) : 이제 우리 는 Fire Fox 프로파일에서 setAcceptUntrustedCertificates "및 " setAssumeUntrustedCertificateIssuer"속성 을 설정해야 합니다.

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

4 단계) : 이제 FireFox 드라이버 개체에서 FireFox 프로필을 사용하십시오.

WebDriver driver = new FirefoxDriver (ffProfile) 		

참고 : "setAcceptUntrustedCertificates"및 "setAssumeUntrustedCertificateIssuer " 는 웹 브라우저에서 인증서 오류를 처리하는 기능입니다.

Chrome에서의 SSL 인증서 오류 처리

Chrome에서 SSL 오류를 처리하려면 Selenium Webdriver의 원하는 기능을 사용해야합니다. 아래 코드는 Chrome의 모든 SSL 인증서를 수락하는 데 도움이되며 사용자는이 코드를 사용하여 SSL 인증서 관련 오류를 수신하지 않습니다.

아래와 같이 DesiredCapabilities 클래스의 인스턴스를 생성해야합니다.

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

IE에서 SSL 인증서 오류 처리

Internet Explorer에서 Chrome 브라우저 및 Firefox에서 SSL 인증서를 처리하는 것과 달리 javascript를 사용하여 처리해야 할 수 있습니다.

IE에서 SSL 인증서를 처리하려면 두 가지 방법으로이 상황을 처리 할 수 ​​있습니다.

  1. 여기에서 " Continue to this website (not recommended), 이 웹 사이트로 이동 (권장하지 않음)" 링크를 클릭하십시오 다음은 IE에서 SSL 오류를 처리하는 방법을 보여줍니다.

IE 브라우저에서 SSL 인증서 오류를 확인하면 "계속이 웹 사이트로 이동 (권장하지 않음)"링크가 표시됩니다.이 링크에는 "대체 링크"라는 ID가 있습니다. F12를 사용하여 HTML 모드에서 ID를 볼 수 있습니다.

Selenium에서 SSL 인증서 오류 처리

아래와 같이 JavaScript 를 사용하여 driver.navigate () 메소드를 사용하여 링크를 클릭하십시오 : -

driver.navigate () .to ( "javascript : document.getElementById ( 'overridelink'). click ()");
  1. 두 번째 방법은 Chrome SSL 처리 코드와 매우 유사합니다.
DesiredCapabilities capabilities = new DesiredCapabilities ();
capabilities.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty ( "webdriver.ie.driver", "IEDriverServer.exe"); WebDriver capabilities = new InternetExplorerDriver (capabilities);

위의 코드는 IE에서 SSL 인증서 오류를 처리하는 데 도움이됩니다.

개요:

  • SSL (Secure Sockets Layer)은 서버와 클라이언트 사이의 보안 연결을 설정하기위한 표준 보안 프로토콜입니다.
  • 브라우저와 서버는 SSL 인증서 메커니즘을 사용하여 보안 연결을 설정할 수 있습니다.
  • SSL은 웹 서버 컴퓨터 및 웹 서버 브라우저에있는 프로그램 및 암호화 / 암호 해독 루틴의 조합을 통해 작동합니다.
  • 인증서로 인해 서버와 클라이언트간에 보안 연결이 설정되지 않은 경우 SSL 인증서 오류가 발생합니다.
  • Selenium Web 드라이버를 통해 자체적으로 SSL 예외 / 오류를 처리 할 수 ​​있도록 스크립트를 조정해야합니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터