SSL/TLS를 위한 테스트용 자체 서명 인증서를 생성하려고 한다
말 그대로 자체-서명이기 때문에 브라우저에서는 신뢰할 수 없는 인증서라고 자꾸 경고하지만
테스트용으로는 편리하게 사용할 수 있다
이 게시물은 내가 공부하는 용도로 작성하는 기록물이다.
1. 개인키 생성
# openssl genrsa -des3 -out keyname.key.origin 2048
keyname은 마음대로 설정한다.
중간에 비밀번호를 물어보므로 하고 싶은 비밀번호를 적는다. 어차피 곧 제거할 것이다.
keyname이라는 키 파일을 생성했다. 이대로 사용하면 비밀번호가 걸려 있는데 귀찮으므로 비밀번호를 제거한다.
2. 인증 요청서 (CSR) 생성
# openssl req -new -key keyname.key.origin -out csrname.csr
csrname은 마음대로 설정한다.
방금 설정한 키의 비밀번호를 물으니 입력해준다.
이후 Country Name, State Name 같은 걸 묻는데 적당히 적어준다.
단 Common Name은 https를 적용할 서버의 도메인이나 IP를 적어준다. 안 적어주면 브라우저에서 신뢰할 수 없는 인증서라고 나온다. (그래도 뚫고 들어갈 수 있긴 하다)
challenge password나 optional company name은 말 그대로 optional 하므로 그냥 엔터쳐서 넘어가도 된다.
3. 개인키 비밀번호 제거
# openssl rsa -in keyname.key.origin -out keyname.key
1에서 생성한 키 origin 파일 이름을 넣으면 비밀번호가 제거된 키가 생성된다.
제거하지 않으면 번거롭게 자꾸 비밀번호를 물어본다고 한다.
처음부터 제거했기 때문에 경험하진 않았다.
4. 인증서 생성 (CRT)
# openssl x509 -req -days 3650 -in csrname.csr -signkey keyname.key -out crtname.crt
2에서 생성한 csr 파일과 3에서 비밀번호를 제거한 키파일을 입력하여 crt 파일을 생성한다.
3650은 유효 기간(일)이다. 귀찮아서 3650일로 설정.
5. 톰캣에서 사용할 수 있는 키스토어 파일 생성
# openssl pkcs12 -export -in crtname.crt -inkey keyname.key -out keyname.p12 -name tomcat
톰캣은 jks, pkcs12 등을 지원하기 때문에 pkcs12 포맷 파일을 생성하였다.
키스토어 비밀번호를 입력하라고 나오면 적당히 원하는 비밀번호를 설정한다.
6. 톰캣 설정 변경
<Connector protocol=org.apache.coyote.http11.Http11NioProtocol"
port="8443" SSLEnabled="true" maxThreads="200"
scheme="https" secure="true"
keystoreFile="p12 파일이 위치한 경로"
keystorePass="키스토어 생성시 입력한 패스워드" keystoreType="pkcs12"
clientAuth="false" sslProtocol="TLS" />
톰캣 디렉토리 내 conf/server.xml 파일을 수정한다.
https 관련 설정이 주석처리 되어 있으므로 주석을 지워주고 위처럼 설정한다.
톰캣을 재시작하면 https 접속이 가능하다.
'안그래보이지만 개발자 > 백엔드' 카테고리의 다른 글
정수 어레이리스트(ArrayList)를 정수 배열로 변환하기 + 정렬 (0) | 2020.10.27 |
---|---|
[tomcat+spring] 이클립스 웹개발 초심자를 화나게 하는 MVC 패턴에서의 url 관련 환경설정 정리 (server.xml 수정) (3) | 2019.11.01 |
java 기초부터 복습하기 : 자바 기본 입력 (1) | 2019.06.12 |
java 기초부터 복습하기 : 자바 기본 출력 (2) | 2019.06.11 |
Spring CORS 구현 / XMLHttpRequest 요청 (0) | 2019.05.03 |