준준의 기록일지

[SSL] 톰캣에 SSL 적용시 Cannot Recover key 에러 본문

네트워크

[SSL] 톰캣에 SSL 적용시 Cannot Recover key 에러

junjunwon 2021. 8. 23. 15:04

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."




톰캣에 SSL을 적용하려면 SSL업체에서 받은 key파일(pfx,crt 등등)을 jks, keystore로 변경해준 뒤 아래와 같이 입력해야 한다.

 

<Connector port="443" 
           protocol="HTTP/1.1" 
           SSLEnabled="true"
           maxThreads="150" 
           scheme="https" 
           secure="true" 
           clientAuth="false"
           keystoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.5\ssl\{키스토어이름}.jks" 
         keystorePass="{비밀번호}"
           sslEnabledProtocols="TLSv1.1,TLSv1.2"
           ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
                    ,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
                    ,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
                    ,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
                    ,TLS_RSA_WITH_AES_128_CBC_SHA256
                    ,TLS_RSA_WITH_AES_128_CBC_SHA
                    ,TLS_RSA_WITH_AES_256_CBC_SHA256
                    ,TLS_RSA_WITH_AES_256_CBC_SHA" 
    />

 

 

사내 서버에 적용한 뒤 확인해 보니 톰캣 부팅시 log파일에 Cannot recover key 오류가 블로그와 같이 동일하게 발생하였다. 

참고한 블로그에서 확인해보니, keystore password와 key password가 서로 달라서 나타나는 증상이라고 한다.

key password는 업체에서 제공해주는 비밀번호로 keystore password와 동일하게 적용하려니 6자 이하라 거기에 맞춰서 적용을 할 수도 없었다. (너무 다행히도, 해당 블로그와 동일한 상황..)

 

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


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

%MyKeyAlias%는 별칭으로 모를 경우 jks keystore 정보를 확인해보면 alias정보가 있다.

 

key와 keystore의 비밀번호를 맞춰주니 정상적으로 ssl이 적용되었다.

 

여기서 헤깔렸던 부분은 pfx파일의 key를 예시:1234에서 신규 비밀번호로 변경해줘도 동일하게 pfx -> jks로 변경해줄때 필요한 source keystore 비밀번호는 예시인 1234와 동일했다.

 

정확한 확인이 필요하겠지만, pfx의 key 비밀번호는  실제 pfx에 접근하기 위한 비밀번호가 아닌 개인키와 같은 비밀번호로 보인다.

즉, pfx의 개인키 정보와 jks의 비밀번호를 동일하게 해줘야 하는 것.

pfx의 keystore 비밀번호와는 무관하다.

 

 

https://wipi.tistory.com/90

 

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

톰캣에서 SSL을 적용하려면 아래와 같은 소스를 입력 해야 합니다.               maxThreads="150" scheme="https" secure="true"               clientAuth="false" sslProtocol="TLS..

wipi.tistory.com