TLS(SSL) 통신 (nodejs server and python client)

Security 2018. 9. 27. 13:08

1. 목적

TLS 통신을 하는 Server와 Client를 실제로 만들어서 테스트 해 보았다.

일단 Self Signed Root 인증서를 만들고, Server와 Client 각각의 인증서를 Root CA로 서명해서 사용했다.


2. 인증서를 생성


[ Self Signed Root CA 생성 ]


[ Server 인증서 생성 ]


[ Client 인증서 생성 ]


3. 서버 (nodejs hapi server)

TLS 통신을 위해서는 TLS 파라미터를 전달해야 한다. 서버 인증서와 Root CA 인증서 전달


4. Client (python http.client 기반)

http.client HTTPSConnection() 파라미터가 파이썬 버전에 따라서 많이 달라졌다. 중요한 점은 TLS 관련 파라미터는 context 객체를 생성해서 전달해야 한다. 기존 key나 인증서 위치 설정 파라미터는 더 이상 지원하지 않는다.


5. Client (python socket 기반)

http.client 보다 더 하위 Layer에서 동작 시켜봤다.


6. 테스트 결과

서버를 node hapi.js을 먼저 실행시키고, python3 test4.py를 실행시키면 정상동작한다.


'Security' 카테고리의 다른 글

TLS(v1.2) - RFC5246 정리 (1)  (0) 2019.06.28
OAuth2.0 - RFC6749 정리 (2)  (0) 2019.06.27
OAuth2.0 - RFC6749 정리 (1)  (0) 2019.06.26
openssl 대칭키 기반 암복호화  (0) 2018.12.24
Openssl 기반 인증서 정리  (0) 2018.09.18
: