티스토리 툴바


매번 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로 리턴토록 처리해줘라...

저작자 표시
Posted by 승현아범