API 파이썬 connection error 발생 , 클라이언트 인증서 , CA인증서, 클라이언트 개인키 관련 옵션 코드 작성

API 파이썬 connection error 발생 , 클라이언트 인증서 , CA인증서, 클라이언트 개인키 관련 옵션 코드 작성

QA

API 파이썬 connection error 발생 , 클라이언트 인증서 , CA인증서, 클라이언트 개인키 관련 옵션 코드 작성

답변 2

본문

파이썬으로 API 호출하는 과정에서 SSL 핸드쉐이크 오류가 발생하여 관련 기관에 물어보니 아래와 같은 답변을 받았습니다.

 

SSL 핸드쉐이크 오류가 발생한 이유는 클라이언트 인증서, CA인증서, 클라이언트 개인 키 등의 정보를 옵션으로 사용하여야 하는데 이러한 옵션들이 없어 상호 인증에 실패 하였다고 합니다.

쿼리문 으로 curl -k --tlsv1.2 --cacert ./ca-chain.crt --cert ./client.crt --key ./client.key -H

위와 같은 설정이 있어야 한다고 합니다.

 

맨 처음에 tlsv1.2 부분은 알아보니 파이썬에서

 

import ssl

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) 구문을 추가하면 된다고 배웠습니다.

 

그다음 cacert ./ca-chain.crt --cert ./client.crt --key ./client.key 이 부분은 어떻게 파이썬으로 코드로 구현해야 할지 몰라서 질문을 올리게 되었습니다.

 

긴글읽어주셔서 감사합니다.

 

배움의자세로 열심히 코딩공부하겠습니다. 감사합니다.

이 질문에 댓글 쓰기 :

답변 2

ssl 키를 로컬에서 만들어 보고 (openssl)

 

거기서 만들어진 파일을 curl에서 맞게 불러주면 됩니다.

SSL 키는 말씀해주신대로 openssl 로 생성하여서

text.crt(클라이언트인증서) , ca-chain(CA인증서) , private.key(클라이언트 개인키) 를 생성하였습니다.

 

파이썬에서 커리문을 실행하는 방법이 있는건가요?

제가 원하는건 위의 작성한 커리문을 파이썬 문법에맞게 바꾸는것인데요..ㅜㅜ

혹시 알고계시면 답장주시면 너무 감사하겠습니다.

SSL 키는 말씀해주신대로 openssl 로 생성하여서 

text.crt(클라이언트인증서) , ca-chain(CA인증서) , private.key(클라이언트 개인키) 를 생성하였습니다.

 

파이썬에서 커리문을 실행하는 방법이 있는건가요?

제가 원하는건 위의 작성한 커리문을 파이썬 문법에맞게 바꾸는것인데요..ㅜㅜ

혹시 알고계시면 답장주시면 너무 감사하겠습니다.

ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
ssl_context.verify_mode = ssl.CERT_REQUIRED
ssl_context.load_verify_locations('C:/Users/kghengice/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc/LocalState/rootfs/home/khj94/ca-chain')

계속 구글링하여 다음과같은 코드를 넣고 실행하였는데도 똑같이 connection error가 뜹니다.
2일째 계속 검색해봐도 제 수준에서 안돼는건가싶어서 질문게시판에 올린겁니다..
혹시 아시는 부분이면 도움을 요청드리고싶습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #api ×
전체 256
© SIRSOFT
현재 페이지 제일 처음으로