사진올리기 귀찮아서 글로만 쓰면 과연 누가 볼까 1호점



이미지배너

[펌, 정리]OpenSSL 인증을 이용하여 Tomcat SSL 설정하기 by keispace



 
일단, 윈도우 openssl 설치

2. 자신에 윈도우 비트에 맞는 최신버전 zip 파일 다운로드 (예: openssl-0.9.8k_X64.zip )
3. 압축해제후 폴더를 C:\로 이동.

이 폴더의 bin 폴더에서 작업 함.

OpenSSL 인증받기
1. JDK의 keytool 프로그램을 이용해서 keystore를 생성

keytool -genkey -alias tomcat -keyalg RSA

2. keytool을 이용해서 인증서 요청파일(CSR)을 생성

keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr

certreq.csr 파일이 생성되었는지 확인

3. OpenSSL에서certreq.csr파일을 이용해서 인증서 생성

1) OpenSSL에 필요한 디렉토리와 파일들 생성

mkdir CA

cd CA

mkdir certs

 mkdir crl

 mkdir newcerts

 mkdir private

 touch index.txt

 echo "0001" > serial

 echo "0001" > crlnumber

2) CA 인증서 생성

가. CA 개인키 생성

openssl genrsa -aes256 -out ca.key 1024

나. Self-Signed CA 인증서 생성

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

3) keytool에서 생성한certreq.csr 을 이용해서 인증서 발급

openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -in ../certreq.csr -out certreq.crt –Cacreateserial

4. keytool을 이용해서 생성된 인증서를 tomcat에 import하기

keytool -import -alias root -trustcacerts -file ca.crt

keytool -import -alias tomcat -file certreq.crt

5. tomcat 환경설정하기

Tomcat이 설치된 디렉토리에서conf/server.xml을 편집

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

            maxThreads="150" scheme="https" secure="true"

             keystoreFile="${user.home}/.keystore" keystorePass="패스워드입력"

            clientAuth="false" sslProtocol="TLS" />

6. https 기본 포트인 443을 이용하도록 tomcat 설정하기

Conf/server.xml파일 편집

아래설정내용에서 붉은색 부분을 443으로 변경

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

            maxThreads="150" scheme="https" secure="true"

             keystoreFile="${user.home}/.keystore" keystorePass="******"

            clientAuth="false" sslProtocol="TLS" />

<Connector port="8080" protocol="HTTP/1.1"

           connectionTimeout="20000"

           redirectPort="443" />

7. 발생한 문제/해결

1) req 명령시 config를 잡지 못함.
Unable to load config info from c:openssl/ssl/openssl.cnf [Temporary workaround included]

->openssl 폴더에 있는 openssl.cnf 파일을 bin 폴더에 하나 더 복사한 후 다음 옵션을 추가해준다.
-config openssl.cnf

 2) 톰캣 실행 시 에러발생 중 다음과 같은 메세지가 출력.
Keystore was tampered with, or password was incorrect
-> 사용자 폴더의 .keystore 파일을 삭제 후 다시 생성(keytool -genkey -alias tomcat -keyalg RSA)


**https의 css, js 설정
외부 연결인 경우 https는 http연결의 css와 js를 막아버림. 
예를들어
<link href="http://www.domain.com/css/mainstyle.css" rel="stylesheet" type="text/css">
는 작동 안함. 이걸 
 < link href="//www.domain.com/css/mainstyle.css" rel="stylesheet" type="text/css" >
와 같은 Protocol Relative URLs 로 연결해줘야 함.  

참조 사이트들







덧글

댓글 입력 영역

와이드리더보드