이 방법을 적용하기 위해서는 Spring Boot가 default 서버(Tomcat)으로 적용되어 있어야한다.
아래는 letsencrpyt를 Tomcat서버에 적용하기 위해 인증서를 변환하는 스크립트다.
#!/bin/bash
CERT_PATH="$1"
PRIVATE_PATH="$2"
CHAIN_PATH="$3"
FULLCHAIN_PATH="$4"
function checkArg()
{
result=1
if [ -z "$CERT_PATH" ] || [ -z "$PRIVATE_PATH" ] || [ -z "$CHAIN_PATH" ] || [ -z "$FULLCHAIN_PATH" ]
then
echo "Usage : $0 <cert.pem path> <private.pem path> <chain.pem path> <fullchain.path>"
return $result
fi
result=0
return $result
}
if ! checkArg
then
exit 1
fi
openssl pkcs12 -export -in $FULLCHAIN_PATH -inkey $PRIVATE_PATH -out keystore.p12 -name tomcat -CAfile $CHAIN_PATH -caname root
사용방법은 다음과 같다.
$ ./convert-to-tomcat-ssl.sh <cert.pem path> <privkey.pem path> <chain.pem path> <fullcain.pem path>Enter Export Password: <password>Verifying - Enter Export Password: <password>
변환된 keystore.p12
인증서를 적절한 위치에 옮겨놓고 적용할 프로젝트의 properties에 아래의 내용을 추가한다.
security.require-ssl=true
server.ssl.key-store=<keystore.p12 path>
server.ssl.key-store-password=<password>
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcat