Back-End/Java

[Java] tomcat 에서 SSL 적용시 Cannot recover key 에러 날 때

HMHA 2023. 3. 27. 14:43
300x250
반응형
300x250

톰캣에서 SSL을 적용하려면 아래와 같은 소스를 입력 해야 합니다.

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="test.jks" keystorePass="test1234" />

물론 그 전에 해당 SSL 업체에서 받은 key 파일을을 톰캣에서 사용할 수 있게끔 변환 해야 합니다.

keytool -importkeystore -srckeystore cert.pfx -srcstoretype pkcs12 -destkeystore cert.jks -deststoretype jks

위의 예제는 PKCS(.pfx) 에서 keystore 파일로 변환 하는 명령어입니다. keytool은 자바에서 bin 폴더에 있는 파일입니다.

다른 crt파일을 변환 하는 방법도 있긴 한데 왠만하면 업체에서 pfx를 지원해주리라 보기 때문에 이게 편합니다. 다른건 좀 복잡하더군요.

어쨌든 적용을 해보니 톰캣 부팅시에 "Cannot recover key" 오류가 발생했습니다. 원인을 찾아보니 keystore password 하고 key password와 서로 달라서 그런 증상이 있다고 합니다. key password는 업체에서 제공 해준건데 keystore password로 동일하게 적용하려 하니 6자리 이하라서 설정도 안되었습니다. 그렇다고 해서 다시 패스워드를 변경하려고 재발급 받기도 어려운 상태였습니다.

그래서 방법을 찾던 중에 key password를 변경하는 법이 있더군요.

keytool -storepasswd -new %newpassword% -keystore %YourKeyStore%.jks     - keystore password 변경 
 

keytool -keypasswd -alias %MyKeyAlias% -new %newpassword% -keystore KeyStore.jks - key password 변경

 

%MyKeyAlias% 는 별칭인데 저의 경우는 발급 밥으려는 도메인 주소가 별칭으로 되어 있더군요.

이걸 하고니 이상 없이 SSL이 적용되었습니다. 설정법도 apache에 비해서 간단하더군요. key파일을 변환해야 한다는게 있긴 한데 하나의 파일로 되니 관리도 쉬울듯 합니다.

 

**

jks(Javakeystore) 에 포함된 SSL 인증서의 Alias 는 어떻게 확인 하나요?

SecureSign 에서 SSL 발급 신청시, CSR자동생성으로 신청한 경우 발급 완료시에는 .jks .pfx 파일들을 추가 첨부 제공하고 있습니다. Java Key Store 파일인 .jks 파일에는 '개인키/서버인증서/체인인증서/루트인증서' 가 모두 포함되어 있습니다.

CSR자동생성 이용하여 발급 첨부된 .jks 패키지의 서버인증서 Alias 는, 도메인 CN 이 Alias 명으로 기본 지정되어 있습니다. 현재 .jks 의 Alias 명을 별도로 확인해 보려면, Java keytool 명령어를 이용해서 확인 가능하며, keytool 명령어를 이용해서 Alias 변경도 가능합니다. (아래 페이지 참조)

SSL 인증서 포맷 변환 가이드 : https://www.sslcert.co.kr/guides/SSL-Certificate-Convert-Format

참고로 Alias 명은,  .jks 에 여러개 인증서가 포함되는데 각 SSL 인증서별 구분 목적으로 단순히 이름을 붙인것이며, Alias 와 SSL 적용 대상 도메인과는 개념이 다르니 착오 없으시기 바랍니다.

 

*

위 이미지와 같이 해서 확인하면 Alias 라고 최상단에 나와있습니다!


 

출처 : https://wipi.tistory.com/90

 

tomcat 에서 SSL 적용시 Cannot recover key 에러 날 때

톰캣에서 SSL을 적용하려면 아래와 같은 소스를 입력 해야 합니다. 물론 그 전에 해당 SSL 업체에서 받은 key 파일을을 톰캣에서 사용할 수 있게끔 변환 해야 합니다. keytool -importkeystore -srckeystore cer

wipi.tistory.com

출처 : https://www.sslcert.co.kr/faq/view/135

 

SSL FAQ : jks(Javakeystore) 에 포함된 SSL 인증서의 Alias 는 어떻게 확인 하나요? - SecureSign

SSL FAQ : jks(Javakeystore) 에 포함된 SSL 인증서의 Alias 는 어떻게 확인 하나요? - SecureSign

www.sslcert.co.kr

 

300x250
반응형