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

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

QA

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

본문

파이썬으로 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일째 계속 검색해봐도 제 수준에서 안돼는건가싶어서 질문게시판에 올린겁니다..
혹시 아시는 부분이면 도움을 요청드리고싶습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 338
QA 내용 검색
filter #ssl ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT