티스토리 뷰

linux 활용 - OpenSSL 에서 S_clinet



  s_client



  s_client( SSL/TLS client program )는 OpenSSL과 관련된 테스트를 한 경우 필요한 경우 운영중인 웹서버의 SSL인증서 

  정보 등을 살펴 볼 수 있다. SSL/TLS를 사용하는원격 호스트에 접속하기 위한 SSL/TLS client를 구현하는 명령어 이다.

 

   【 s_client  사용법 】


    #> openssl s_client -connect [서버]:4333 [옵션]

     

  연결한 호스트와 포트를 지정한다. 지정되지 않으면 포트 4433의 로컬 호스트에 연결을 시도한다.



   【 s_client 옵션 】


 옵션  

 기능 

 -connect host:port

 - 접속할 호스트와 데몬이 실행중인 포트를 지정

   포트를 지정하지 않으면 localhost 4433으로 접속 시도 

 -cert certname 

 - 서버가 인증서를 요청할 경우 사용할 인증서

   기본값은 인증서를 사용하지 않는다.

 -msg

 - 모든 프로토콜 메세지를 보여준다.

 -ign_eof 

 - 입력이 파일끝에 도달하면 연결이 종료되는데 이를 방지해준다.

 -quit  

 - 세션 및 인증서 정보의 인쇄를 금지한다. 

 - 일시적으로 -ign_eof옵션도 켠다.

 -cert [file]

 - client public key 서버 인증서

 -key[file] 

 - client private key 개인키 사용 기본 perm 

 -state 

 - ssl세션 상태 출력 

 -verify

 - 서버 인증서 체인이 최대 길이를 지정하고 서버 인증서 확인 

 -debug

 - 디버그 모드 디버그 메세지를 16진수로 출력 

 -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, -no_tls

 - no가 없는 경우 해당 프로토콜로만 통신하고, no가 있는 경우 해당

   프로토콜만 제외하고 통신을 시도한다. 



   【 s_client 예시 】


    #> openssl s_client -connect 8.8.8.8:4433 # 기본통신

    #> openssl s_client -connect 8.8.8.8:4433 -showcerts # server cert display

   #>openssl s_client -connect 8.8.8.8:4433 -cipher DES-CBC3-MD5 -ssl2 # ssl2의 DES-CBC3-MD5 cipher로만 통신한다.