[백업][가리사니] 톰켓 ssl / tls 인증서 세팅 apr / nio / nio2
certificate, tomcat
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
필자는 위 가리사니 사이트 처럼 HTTPS를 사용하여 톰켓에 인증서를 세팅해줘야하는데. 5년전엔 고생좀하다가 적용했던걸로 기억합니다. (APR)
문제가 되는부분은 톰켓에서 SSL이 안되요.! 라는 질문을 많이 받아 볼 수 있는데요. 이유는 일반적으로 APR / NIO계열 ( NIO / NIO2 이하 NIO) 는 server.xml에서 인증서를 세팅하는 부분이 조금 다릅니다.
APR과 NIO의 인증서 세팅부분이 다른건 APR은 OpenSSL NIO는 Java SSL을 기반으로 사용해서 그런 것 같습니다.
APR 방식 세팅법
<Connector
protocol="org.apache.coyote.http11.Http11AprProtocol 생략시 기본값"
port="443"
scheme="https"
secure="true"
SSLEnabled="true"
SSLCACertificateFile="CA인증서"
SSLCertificateChainFile="체인인증서"
SSLCertificateFile="도메인인증서"
SSLCertificateKeyFile="KEY파일"
SSLPassword="암호"
/>
NIO 방식 세팅법
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="키스토어"
keystorePass="암호"
keystoreType="키타입 주로 PKCS12"
/>
NIO2 방식 세팅법
<Connector
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
이하동일
/>
NIO방식으로 쓰려면 일반 인증서들을 키스토어 형태로 바꾸셔야합니다. 아래 링크로 가시면 OPENSSL을 통한 예제가 있습니다. /2015/09/15/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-openssl-%EC%9D%84%ED%86%B5%ED%95%B4-crt-cer-key-%ED%8C%8C%EC%9D%BC%EC%9D%84-p12-%ED%8C%8C%EC%9D%BC%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EA%B8%B0/html