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 로 생성하여서
text.crt(클라이언트인증서) , ca-chain(CA인증서) , private.key(클라이언트 개인키) 를 생성하였습니다.
파이썬에서 커리문을 실행하는 방법이 있는건가요?
제가 원하는건 위의 작성한 커리문을 파이썬 문법에맞게 바꾸는것인데요..ㅜㅜ
혹시 알고계시면 답장주시면 너무 감사하겠습니다.
답변에 대한 댓글 3개
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일째 계속 검색해봐도 제 수준에서 안돼는건가싶어서 질문게시판에 올린겁니다..
혹시 아시는 부분이면 도움을 요청드리고싶습니다.
계속 검색하고 시행착오 겪어보면서 시도했는데 안돼서 글을 올린거였습니다.ㅜㅜ
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
text.crt(클라이언트인증서) , ca-chain(CA인증서) , private.key(클라이언트 개인키) 를 생성하였습니다.
파이썬에서 커리문을 실행하는 방법이 있는건가요?
제가 원하는건 위의 작성한 커리문을 파이썬 문법에맞게 바꾸는것인데요..ㅜㅜ
혹시 알고계시면 답장주시면 너무 감사하겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인