[Linux] Apache2.4 Tomcat6 SSL 인증서 설정

2014. 6. 23. 16:07OS/Linux

Linux에서 Apache , Tomcat6.0(mod_jk) 그리고 SSL 인증서 설정

▣ 인증서 생성, Apache와 Tomcat연동

  - apache와 tomcat은 설치되어있는 전제로 설명


1. 인증서 설치  

  1) openSSL 설치 되어있는지 확인

    - # rpm -qa openssl

      (아마 설치 되어있을것이다.)


  2) 서버 개인키 server.key 생성

    - # openssl genrsa -des3 -out server.key 2048


  3) 인증 요청서 생성

    - # openssl req -new -key server.key -out server.csr

    - 위의 명령어를 입력하면 암호를 입력하라는 메시지가나옴

    - 암호입력 후 나머지는 "엔터"로 넘긴다.

    - 위 과정이 끝나면 인증요청서 server.csr 이 생성된다.


  4) 개인키 암호 제거

    - 암호를 제거하지않으면 구동시마다 암호를 입력해야하기 때문에 귀찮으니 암호를 제거하자

    - 암호를 제거해도 통신에는 문제가 없다.

    - cp server.key server.key.org (복사)

    - openssl rsa -in server.key.org -out server.key

    - 위 명령어를 입력하면 암호를 입력하라는 메시지가 나온다. 


  5) 인증서 생성

    - # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    - 서버인증서 server.csr이 생성된다.

   

  6) 개인키와 인증서 파일 이동

    - # cp server.key "아파치경로"

    - # cp server.crt "아파치경로"

   

2. Apache와 Tomcat6.0 연동 

 *) jk_module 을 설치 후 수행 (jk_module는 개별적으로 검색)

  1) httpd.conf 파일 수정 (ex: /usr/local/apache2/conf/httpd.conf)

     - 가장 마지막 줄에 추가해준다.

       LoadModule jk_module modules/mod_jk.so

       Include conf/mod_jk.conf



   2) mod-jk.conf 파일 생성

     (ex: /usr/local/apache2/conf 폴더에 생성

JkWorkersFile "/usr/local/apache2/conf/workers.properties"

JkLogFile "/usr/local/tomcat6/logs/mod_jk.log"

JkLogLevel error

JkAutoAlias "/usr/local/tomcat6/webapps"

JkMount /* test1

<Directory "/usr/local/tomcat6/webapps">

    Options Indexes FollowSymLinks

    allow from all

</Directory>



   3) workers.properties 생성 (/usr/local/apache2/conf 폴더에 생성)

workers.tomcat_home="/usr/local/tomcat6"

workers.java_home="/usr/local/jdk1.7.0_25"

worker.list=test1
worker.test1.port=8009
worker.test1.host=localhost
worker.test1.type=ajp13


   4) Tomcat 설정

    <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />

    <Connector port="8009" protocol="HTTP/1.1"  redirectPort="8443" />

   - 위와 같이 redirectPort="8443"을 추가해준다.

   - http://localhost:8080/test   으로 접속 테스트 수행


3. SSL 설정 (https)

  1) mod_ssl.co module 주석 해제

     - LoadModule ssl_module /etc/httpd/modules/mod_ssl.so 주석제거


  2) Secure(SSL/TLS) connections 아래부분에

     - Include conf/extra/httpd-ssl.conf 주석제거


   *) apache의 버전별로 수정하는 파일이 다르다.

    - Apache version 1.x

       /usr/local/apache/conf/httpd.conf


    - Apache version 2.x

      /usr/local/apache2/conf/ssl.conf


    - Apache version 2.2x

      /usr/local/apache2/conf/httpd-ssl.conf


    - 나같은 경우 버전 2.4이기 때문에 httpd-ssl.conf 파일을 수정해야한다.

  3) httpd-ssl.conf 수정
   - #vi /usr/local/apache2/conf/extra/httpd-ssl.conf
   - <VirtualHost 아이피:443>

#General setup for the virtual host

DocumentRoot "/home/test/"

#DocumentRoot "/usr/local/apache2/htdocs"

ServerName test.com:443

ServerAdmin you@example.com

ErrorLog "/usr/local/apache2/logs/error_log"

TransferLog "/usr/local/apache2/logs/access_log"

SSLCertificateFile "/usr/local/apache2/conf/server.crt"

SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

JKMount /* test1   
</VirtualHost>          

      *) test1 은 workers.properties에 추가했던 worker

    위의 작업이 끝나면 tomcat과 apache를 재기동한 후 테스트를 해보자
    테스트 예 - https://도메인명 
    만약, 접속이 안될 경우에는 방화벽 설정을 안했을 가능성이 있다.
    iptable을 수정 후 다시해보면 될 것이다. 
     

 

'OS > Linux' 카테고리의 다른 글

[Ubuntu] 리눅스 root 계정 활성화  (0) 2014.09.13
[Ubuntu] 'readonly' option is set (add ! to override)  (0) 2014.09.11
[Linux] svn 설정  (0) 2014.06.17
[Linux] 자바, Tomcat ClassPath 잡는방법  (0) 2014.04.29
[Linux] ftp 설정  (0) 2014.04.23