매번 SSL 통신할 때마다 헷갈려서 이번에는 적어 놓는다... (머리가 메모를 도저히 못 따라가는구나....)
I. 일반적인 웹서버 SSL 셋팅시
-. 웹서버 또는 keytool, openssl 등을 통해서 개인키와 공개키를 생성한다. (keygen~)
(자바에서는 keystore 생성도 포함)
-. 생성된 공개키로 CSR 를 생성하고, 각 CA에게 전달
-. CA로부터 전자서명된 인증서를 전달 받는다.
-. 웹서버에 인증서와 개인키를 설정한다.
개인키PEM으로 설정시에 간혹 PKCS#8 포맷 오류가 발생할 수 있다.
이때 OpenSSL 사이트의 Example 참고
-. 서버 인증서 뿐만 아니라 CA키도 함께 설정해야 한다.
-. 개인키와 인증서를 PKCS#12로 묶어서 처리해야 하는 경우도 있는데,
이때는 OpenSSL 등을 이용하자!!! (자바의 keytool은 기본적으로 제공하지 않으므로, 별도 프로그램을 이용하자)
II. JAVA를 통한 SSL 통신
-. 자바에서는 기본적으로 keystore를 사용하니깐, keystore를 하나 준비하고,
-. 대상 SSL 사이트의 인증서를 keystore에 import 한다.
ex) keytool -import -alias 별명 -keystore 키스토어파일 -file 불러들일 서버 인증서
-. 그리고 자바 코드에서 해당 keystore에 로드한 인증서를 신뢰하겠다는 의미로 TrustKeySotre를 지정한다.
ex) System.setProperty("javax.net.ssl.trustkeyStore", XXXX); ....
-. 다음은 HttpsURLConnection을 이용하여 Connection을 얻어오고, In/OutputStream 처리하면 끝.
-. 간혹 서버 인증서의 등록된 도메인과 서비스 도메인이 틀릴 경우가 왕왕 있는데...
이럴때는 javax.net.ssl.HostnameVerifier.verify를 true로 리턴토록 처리해줘라...
I. 일반적인 웹서버 SSL 셋팅시
-. 웹서버 또는 keytool, openssl 등을 통해서 개인키와 공개키를 생성한다. (keygen~)
(자바에서는 keystore 생성도 포함)
-. 생성된 공개키로 CSR 를 생성하고, 각 CA에게 전달
-. CA로부터 전자서명된 인증서를 전달 받는다.
-. 웹서버에 인증서와 개인키를 설정한다.
개인키PEM으로 설정시에 간혹 PKCS#8 포맷 오류가 발생할 수 있다.
이때 OpenSSL 사이트의 Example 참고
-. 서버 인증서 뿐만 아니라 CA키도 함께 설정해야 한다.
-. 개인키와 인증서를 PKCS#12로 묶어서 처리해야 하는 경우도 있는데,
이때는 OpenSSL 등을 이용하자!!! (자바의 keytool은 기본적으로 제공하지 않으므로, 별도 프로그램을 이용하자)
II. JAVA를 통한 SSL 통신
-. 자바에서는 기본적으로 keystore를 사용하니깐, keystore를 하나 준비하고,
-. 대상 SSL 사이트의 인증서를 keystore에 import 한다.
ex) keytool -import -alias 별명 -keystore 키스토어파일 -file 불러들일 서버 인증서
-. 그리고 자바 코드에서 해당 keystore에 로드한 인증서를 신뢰하겠다는 의미로 TrustKeySotre를 지정한다.
ex) System.setProperty("javax.net.ssl.trustkeyStore", XXXX); ....
-. 다음은 HttpsURLConnection을 이용하여 Connection을 얻어오고, In/OutputStream 처리하면 끝.
-. 간혹 서버 인증서의 등록된 도메인과 서비스 도메인이 틀릴 경우가 왕왕 있는데...
이럴때는 javax.net.ssl.HostnameVerifier.verify를 true로 리턴토록 처리해줘라...