Certicates 인증서
- SSL를 구현하려면 웹 서버에 Certificate가 있어야 한다.
- Certificate은 암호화된 연결을 수용하는 외부 인터페이스를 보장
Certificate Keystore 준비하기
- Tomcat에서 수용하는 keystore 타입은 JKS, PKCS11 또는PKCS12
· JKS: Java 표준 키스토어 형식.
JDK에 포함된 keytool 커맨드 라인툴로 생성 가능
· PKCS12 : 인터넷 표준 형식. Open SSL이나 Microsoft Key-Manager로 조작 가능
- keystore의 목록들은 alias의 문자열 값으로 구분할 수 있다. 대부분은 대소문자 구분을 하지 않지만, PKCS11 형식은 대소문자 구분
C:\Program Files\Java\jdk1.8.0_161\bin>keytool -genkey -keyalg RSA -sigalg SHA1withRSA -alias mySSL -keysize 2048 -keystore mySSL.jks
키 저장소 비밀번호 입력:
키 저장소 비밀번호가 너무 짧음 - 6자 이상이어야 합니다.
키 저장소 비밀번호 입력:
새 비밀번호 다시 입력:
일치하지 않습니다. 다시 시도하십시오.
키 저장소 비밀번호 입력:
새 비밀번호 다시 입력:
이름과 성을 입력하십시오.
[Unknown]: seok
조직 단위 이름을 입력하십시오.
[Unknown]: seok
조직 이름을 입력하십시오.
[Unknown]: seok
구/군/시 이름을 입력하십시오?
[Unknown]: Seuol
시/도 이름을 입력하십시오.
[Unknown]: Seuol
이 조직의 두 자리 국가 코드를 입력하십시오.
[Unknown]: KR
CN=seok, OU=seok, O=seok, L=Seuol, ST=Seuol, C=KR이(가) 맞습니까?
[아니오]: Y
<mySSL>에 대한 키 비밀번호를 입력하십시오.
(키 저장소 비밀번호와 동일한 경우 Enter 키를 누름):
Warning:
JKS 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore mySSL.jks -destkeystore mySSL.jks -deststoretype pkcs12"를 사용하는 산업 표준 형식인 PKCS12로 이전하는 것이 좋습니다.
C:\Program Files\Java\jdk1.8.0_161\bin>keytool -importkeystore -srckeystore mySSL.jks -destkeystore mySSL.jks -deststoretype pkcs12
소스 키 저장소 비밀번호 입력:
myssl 별칭에 대한 항목이 성공적으로 임포트되었습니다.
임포트 명령 완료: 성공적으로 임포트된 항목은 1개, 실패하거나 취소된 항목은 0개입니다.
Warning:
"mySSL.jks"을(를) Non JKS/JCEKS(으)로 이전했습니다. JKS 키 저장소가 "mySSL.jks.old"(으)로 백업되 었습니다.
- Tomcat 설정
Server.xml
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/mySSL.jks"
certificateKeystorePassword="비밀번호"
type="RSA" />
</SSLHostConfig>
</Connector>
- SSL 접근