Apache Web Server 2.4 에 HTTPS 적용하기

Linux/CentOS 2015. 11. 11. 10:53 by 후뤼한잉여

Apache Web Server 2.4 에 HTTPS 적용하기

1) 개요

Apache Web Server 구성 이후 HTTPS로 보안을 강화해보고자 설치했던 내용을 정리하기 위해 작성되었습니다.

2) 설정방법

  1. 의존패키지 설치하기
    sudo yum install openssl-devel
    
  2. Apache 모듈 포함하여 재설치
    CentOS 7 에서 Apache Web Server 2.4 설치하기 참고하여 진행
    sudo ./configure --prefix=[Apache 설치된 디렉토리] --with-apr=[Apache 설치된 디렉토리]/bin/apr-1-config --enable-ssl --with-ssl=/usr/bin/openssl
    sudo make
    sudo make install
    

    prefix를 다른 위치로 지정하여 설치 후 SSL 모듈만 가져와서 사용하는것이 더 안전합니다.

  3. Apache 설정 변경하기
    vi [Apache 설치된 디렉토리]/conf/httpd.conf
    
    httpd.conf 파일에 수정할 내용
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so //주석 해제
    LoadModule ssl_module modules/mod_ssl.so //추가
    LoadModule rewrite_module modules/mod_rewrite.so //추가 (HTTPS로 리다이렉트시 사용 필요하신 분만 사용하세요.)
    Include conf/extra/httpd-ssl.conf //주석 해제
    
    • HTTP 접속시 HTTPS로 리다이렉트 하기 위해 httpd.conf파일 마지막에 추가
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [C]
      </IfModule>
      
  4. OpenSSL 인증서 생성하기
    GitLab에 HTTPS 보안 적용을 위한 OpenSSL 설정하기 참고하여 생성
  5. Apache SSL 관련 부분 설정 변경하기
    vi [Apache 설치된 디렉토리]/conf/extra/httpd-ssl.conf
    
    httpd-ssl.conf 파일에 수정할 내용
    JkMountCopy on //<VirtualHost _default_:443>아래에 추가
    DocumentRoot //주석처리
    SSLCertificateFile "[인증서 설치된 디렉토리]/[인증서 이름].crt"
    SSLCertificateKeyFile "[인증서 설치된 디렉토리]/[인증서 이름].key"
    
  6. Tomcat 설정 변경하기
    vi [Tomcat 설치된 디렉토리]/conf/server.xml
    
    server.xml에 변경할 내용
    SSLEngine=“off” //기존 "off"를 “on”변경
    
  7. 방화벽 설정하기
    sudo firewall-cmd --add-service=https --permanent
    sudo firewall-cmd --reload
    
  8. Apache, Tomcat 재시작

Apache Web Server 2.4 와 Tomcat 8 연동하기

Linux/CentOS 2015. 11. 11. 10:31 by 후뤼한잉여

Apache Web Server 2.4 와 Tomcat 8 연동하기

1) 개요

정적 페이지는 Apache Web Server에서 처리하고, 동적 페이지는 Tomcat에서 처리하기 위해 설정한 내용을 정리하기 위해 작성되었습니다.

2) 설치 방법

  1. 연동 커넥터 다운로드
    wget  http://apache.tt.co.kr/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
    
  2. 의존 패키지 설치하기
    sudo yum install autoconf libtool
    
  3. 연동 커넥터 설치파일 압축 해제
    tar -zxvf tomcat-connectors-1.2.41-src.tar.gz
    
  4. 연동 커넥터 설치하기
    cd [설치파일 압축 해제한 디렉토리]/native/
    sudo ./buildconf.sh
    sudo ./configure --prefix=[Apache 설치된 디렉토리] --with-apxs=/usr/bin/apxs
    sudo make
    sudo make install
    
  5. 연동 커넥터 생성 확인 및 실행권한 부여
    ls [Apache 설치된 디렉토리]modules/mod_jk.so
    sudo chmod +x [Apache 설치된 디렉토리]/modules/mod_jk.so
    

3) 설정 방법

  1. mod_jk 모듈 관련 설정
    1-1. 톰캣과 연동 정보 설정

     vi [Apache 설치된 디렉토리]/conf/workers.properties
    

    workers.properties에 입력할 내용

     workers.tomcat_home="[Tomcat이 설치된 디렉토리]"
     workers.java_home="[JDK가 설치된 디렉토리]"
     ps=/
     worker.list=ajp13
     worker.ajp13.port=8009
     worker.ajp13.host=localhost
     worker.ajp13.type=ajp13
    

    1-2. 정적 페이지 패턴 및 로그 관련 설정

     vi [Apache 설치된 디렉토리]/conf/mod_jk.conf
    

    mod_jk.conf에 입력할 내용

     <IfModule mod_jk.c>
         JkWorkersFile "[Apache 설치된 디렉토리]/conf/workers.properties" //연동 정보 파일
         JkMount /*.jsp ajp13 //정적 페이지 처리할 패턴 설정
         JkLogFile "[Tomcat이 설치된 디렉토리]/logs/mod_jk.log" //로그 설정
         JkLogLevel info
         JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
         JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
         JkRequestLogFormat "%w %V %T"
         JkAutoAlias "[Tomcat이 설치된 디렉토리]/webapps"
     </IfModule>
    
    • 서블릿에서 특정 정적 패턴을 제외한 나머지 WAS가 처리하도록 설정 하는 팁
        SetEnvIf Request_URI "/*.js$" no-jk
        JkMount /* ajp13
      
      • 모든 유형은 톰캣에서 처리하지만 .js파일은 아파치에서 처리하겠다는 의미. Request_URI는 정규표현식을 이용해서 패턴을 정하는데 *.js까지만 하면 jsp파일도 아파치에서 처리해서 소스가 노출되는 문제가 있어 문자의 끝을 의미하는 $를 넣어주는것이 안전하다.
  2. Apache Web Server 설정

     vi [Apache 설치된 디렉토리]/conf/httpd.conf
    

    httpd.conf파일에 수정할 부분

     LoadModule jk_module modules/mod_jk.so //추가
     include conf/mod_jk.conf //추가
     DocumentRoot "[Tomcat이 설치된 디렉토리]/webapps/ROOT"
     <Directory "[Tomcat이 설치된 디렉토리]/webapps/ROOT"> //ROOT 상위 디렉토리 접근 필요시 ROOT 제외
     Options -Indexes FollowSymLinks를 Options //Indexes앞에 - 붙이기.
    
    • Options Indexes FollowSymLinks를 Options -Indexes FollowSymLinks로 변경해야 WelcomePage 없을 때 indeox of 페이지를 못 보게 막을 수 있다.
    • -로 붙였는데 오류가 나면 Indexes자체를 지운다.
  3. Tomcat Native Library 설치하기

    • Native Library를 설치하기 위해서는 APR이 설치되어 있어야 하는데, 일반적으로 Apache를 설치하면 [Apache가 설치된 디렉토리]/bin/apr-1-config 에 설치 되는듯 하다.

      3-1. Native Library 다운로드

      wget http://apache.tt.co.kr/tomcat/tomcat-connectors/native/1.1.33/source/tomcat-native-1.1.33-src.tar.gz
      

      3-2. 압축 해제하기

      tar -xvf [설치파일].tar.gz
      

      3-3. Native Library 설치하기

      cd [설치파일 압축 풀린 디렉토리]/jni/native
      sudo ./configure  --prefix=[Tomcat 설치된 디렉토리] --with-apr=[Apache가 설치된 디렉토리]/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=/usr
      sudo make
      sudo make install
      

      3-4. Tomcat 8 설정 변경

      cd [Tomcat 설치된 디렉토리]/bin
      vi catalina.sh
      

      catalina.sh 파일에 추가할 부분

      export LD_LIBRARY_PATH=/app/tomcat8/lib:$LD_LIBRARY_PATH //시작 부분에 추가
      
      • 꼭 추가 해야하는지는 확인을 안해봐서 나중에 확인해보도록 하겠습니다.
    • Tomcat 시작 시 SSL 엔진을 못 찾는 다는 오류가 발생한다면 아래 내용 적용하기
      vi [Tomcat 설치된 디렉토리]/conf/server.xml
      
      server.xml 파일에 수정할 내용
      SSLEngine=“off" //기존 on에서 off로 변경
      

CentOS 7 에서 Apache Tomcat 8 Container 설치하기

Linux/CentOS 2015. 11. 11. 00:20 by 후뤼한잉여

CentOS 7 에서 Apache Tomcat 8 Container 설치하기

1) 개요

JSP를 사용하기 위해 Apache Tomcat 8 Container를 설치한 내용을 정리하고자 작성되었습니다.

2) 설치하기

  1. 의존패키지 설치하기
    sudo yum -y install wget make gcc gcc-c++*
    
  2. Tomcat 8 다운로드
    wget http://apache.tt.co.kr/tomcat/tomcat-8/v8.0.26/bin/apache-tomcat-8.0.26.tar.gz
    
  3. Tomcat 8 압축 해제(설치) 하기
    tar -xvf [설치파일] -C [설치할 경로]
    
  4. 방화벽 해제하기
    sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
    sudo firewall-cmd --reload
    
  • Tomcat 8 실행 / 종료 명령어
    • 실행 명령어
      [Tomcat 8 설치된 경로]/bin/startup.sh
      
    • 종료 명령어
      [Tomcat 8 설치된 경로]/bin/shutdown.sh
      
Nav