※ 참고 : Web Server를 이용하거나 L4 장비등을 이용하여 서비스를 하는경우가 아닌 Was를 이용한 단독 서비를 진행할 경우 SSL 인증서를 설치하는 케이스의 문서입니다.
1. 준비사항
- 인증서 파일 : keystore 파일 혹은 *.jks 파일
- 인증서 파일의 패스워드
- SSL 통신을 위한 방화벽 Open
2. 인증서 적용을 위한 설정파일 수정
- 인증서는 server.xml 파일을 수정하여 적용할 수 있습니다. 톰켓이 설치된 폴더의 conf/server.xml이 존재합니다.
- Tomcat 6.x 이하 버전의 설정
1 2 3 4 5 6 7 8 9 10 | <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreds="150" scheme="https" secure="true" clientAuth="false" keystoreFile="/usr/local/tomcat/conf/domain.jks" keystorePass="password" sslProtocol="TLS" /> | cs |
- Tomcat 7.x 이상 버전의 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreds="150" scheme="https" secure="true" clientAuth="false" keystoreFile="/usr/local/tomcat/conf/domain.jks" keystorePass="password" 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" /> | cs |
- KeystoreFile은 인증서 파일의 경로 입니다.
- KeystorePass는 인증서의 패스워드 입니다.
- ciphers는 보안 문자열로 별도 구글링을 이용하여 공부하시기 바랍니다.
위에 예제로 나와있는 보안 문자열은 국내에서 일반적으로 사용함에 있어 적당한 보안 문자열 입니다.
단 해외 사이트에 적용할 경우 보안검열 시 걸릴 수 있습니다.
참고 : 해외 결제사이트에서 사용한 사이퍼 슈트 - URL : http://cheezred.tistory.com/88
- SSL 기본포트는 443포트 입니다.
SSL관련 Connector에 주석처리가 되어있는 경우, 주석을 해제해 주시기 바랍니다.
Windows 서버의 경우에도 아래와 같이 인증서 파일의 경로를 입력하시면 됩니다.
keystoreFile="C:\Tomcat\conf\domain.jks"
- Protocol의 경우, server.xml에 설정된 기본 Protocol을 사용하시면 되고,서비스가 정상 실행되지 않을 경우,
protocol="HTTP/1.1" 이나 protocol="org.apache.coyote.http11.Http11Protocol" 로 변경한 후
서비스 재시작하시면 됩니다.
3. 적용 테스트
- SSL 포트 확인
[root@certkorea bin]# netstat -nap|grep 443 tcp 0 0:0:0:0:443 0:0:0:0:* LISTEN 14321/httpd |
- 방화벽 확인
사용하고 있는 방화벽에서 SSL포트(기본 443)를 80포트와 동일한 조건으로 OPEN 해주시기 바랍니다.
- 적용 후 WAS를 재기동 하신 뒤 https://서버주소를 주소창에 입력하신 후 해당 페이지가 https로 페이지가 열리면 정상적으로 설치가 완료된 것 입니다.
4. 오류 발생 시
- java.lang.Exception: No Certificate file specified or invalid file format 오류
jks 파일을 JAVA에서 인식하지 못하는 것으로, 아래의 두 가지 방법 중 하나로 처리가 가능합니다.
1) .keystore 파일로 처리
발급된 domain.jks 파일을 Unix/Linux 서버의 root 폴더(/)나 Windows 서버의 Administrator 폴더(C:\Documents and Settings\Administrator) 폴더에 복사하신 후, 파일이름을 .keystore로 변경한 후 저장
2) p12 파일로 처리
pkcs12 형식의 파일로 인증서를 변환발급 받으신 후 server.xml 파일을 아래와 같이 설정하신후 적용하시면 됩니다.
1 2 3 4 5 | <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtoco" SSLEnabled="true" maxThreds="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/usr/local/tomcat/conf/domain.p12" keystoreType="pkcs12" keystorePass="password" /> | cs |
- java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR 오류
APR로 SSL 설정을 해야하는 환경입니다.
SSLCertificateFile / SSLCertificateKeyFile / SSLCACertificateFile 항목으로 domain.crt / domain.key / chainca.crt 파일로 인증서를 설정해야 합니다.
1 2 3 4 5 6 7 | <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreds="150" scheme="https" secure="true" clientAuth="false" SSLCertificateFile="/usr/local/tomcat/config/ssl/domain.crt" SSLCertificateKeyFile="/usr/local/tomcat/config/ssl/domain.key" SSLCACertificateFile="/usr/local/tomcat/config/ssl/chainca.crt" sslProtocol="TLS" /> | cs |
'Server' 카테고리의 다른 글
[Tomcat] 톰켓 기초 설정 가이드 (1) | 2018.04.12 |
---|---|
robots.txt 설정 (0) | 2018.01.08 |
Activate HTTPS on JBoss AS 7 (0) | 2016.02.23 |
[Weblogic] Was 기동 시 User Name / Pass word 묻는 경우 (0) | 2016.02.01 |
[Tomcat 7.x] server.xml ciphers 설정 (0) | 2015.12.18 |