자바로 인증이 필요할 때 인증서를 만들어서 서로 인증하는 방법이 있다. 안드로이드에서 사용한다고 하는데 임포트된 라이브러리를 보니 기본 라이브러리들이라 구현해보기로 했다.
먼저 인증서가 필요한데 keytool 이라는 것도 있고 Portecle 이라는 것도 있다. keytool은 콘솔에서 실행하는 거라 좀 불편해보이고 Portecle은 jar 형태로 되어있는데 단축 아이콘을 만들어 실행하면 되니 더 편해보여 Portecle 로 만들어 보겠다.
다운로드: https://sourceforge.net/projects/portecle/
다운로드 받고 실행하려면 다음과 같이 입력하면 된다.
java.exe -jar portecle.jar
-jar 가 없으면 실행되지 않으니 이부분 주의하면 된다. 나처럼 단축 아이콘을 만들어 사용할 경우는 portecle.jar의 폴더 경로까지 portecle.jar앞에 붙여주어야 한다.
이제 실행이되면 아래같은 창이 나오는데 빨간색 네모 아이콘을 눌러 새로운 key store를 만든다.
그럼 아래와 같은 창이 더 뜨는데 JKS를 선택하고 OK를 누르자.
그다음은 아래와 같은 화면인데, RSA로 하고 사이즈는 2048로 하겠다. 보안을 위해서는 2048 이상으로 추천한다.
다음 화면에서 Common Name에 도메인을 입력하고 OK 클릭.
별명은 server라고 주었다. OK 클릭.
비밀번호 입력하고 OK 클릭
키가 생성되었다.
이제 key store를 저장하기 위해 아래 화면에서 빨간 사각형 부분을 클릭하자.
다시 비밀번호 입력하고 OK 클릭.
저장할 경로를 맞추고나서 파일 이름을 넣고 OK 클릭.
그럼 keystore.jks 생성이 되었다. 인증키 저장소를 만들었으니 이제 인증키를 추출하자.
Portecle에서 server를 선택하고 마우스 오른쪽 버튼을 누르면 Certificate Details 라는 부분이 있는데 클릭하자. 그럼 아래와 같이 창이 뜬다.
여기서 PEM Encoding을 클릭하면 창이 다시 뜨는데 저장을 하기 위해 Save 버튼을 누른다. 그럼 pem 확장자의 파일을 저장하는 창이 나오는데 파일이름을 server라고 넣고 저장을 하겠다. 경로는 편의상 keystore.jks와 동일하게 주겠다.
추출을 하였으니 이번엔 인증서 저장소를 만들겠다. 먼저 Portecle을 재실행하고 위에서 처럼 jks key store를 만들자. 그리고 아래 사진의 빨간색 네모 부분의 버튼을 눌러서 만들어둔 PEM 파일을 추가한다.
import하고 질문이 나오는데 확인을 누르고 넘어가서 OK, 예를 눌러주면 이전 작업에서 처럼 별명을 넣어주라고 나오는데 동일하게 server로 하겠다.
처음에 keystore.jks 파일을 만든었을 때처럼 다시 jks 파일을 만드는데 이번엔 truststore.jks 라고 파일명을 만들겠다.
이제 필요한 파일은 전부 만들었다. 스크롤 압박으로 JAVA 샘플은 따로 정리하겠다.
참고
http://tjjava.blogspot.kr/2012/03/https.html
http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html
'Java' 카테고리의 다른 글
handshake_failure 오류 해결하기 (0) | 2020.01.21 |
---|---|
사용자가 만든 인증서로 인증 테스트 (0) | 2016.10.06 |
simplecaptcha 한국어 음성 적용하기 (0) | 2016.07.12 |
Static Import 에 대해 (0) | 2015.09.18 |
captcha를 만들어보자 (0) | 2015.04.29 |