블로그 이미지
은총애비!!

카테고리

분류 전체보기 (2521)
Linux (35)
Error 해결 방법 (5)
소소한 일상 (1616)
사진실 (0)
책책책, 책을 읽읍시다!! (21)
기타(JSP & DB & 등등) (4)
미국 주식 관련 (541)
아침형 인간 프로젝트 (292)
Total
Today
Yesterday
반응형

jdk 설치 /apache 설치 /tomcat 설치 /apache & tomcat connectors 연동 /OpenSSL 설정

Micro Server G7 N54L을 작년 9월에 구입후 얼마전부터 Linux 설치 및 연동 테스트에 들어갔습니다.

서버에 관심이 많아서 이것저것 만져보다가 VMWARE로 먼저 테스트 한 것을 TEXT로 옮겨놓은 겁니다.

저도 인터넷에 돌아다니는 문서로 여러번 테스트를 해봤지만 설치는 그렇다 치더라도 설정이 적용 안되는 부분이 많아서 문서에 나와있는 버전으로 해본 경험이 많습니다. 지금 제가 설치한 버전은 시대에 뒤떨어진 구버전입니다. 혹시라도 문서의 버전이 필요하시면 댓글로 메일 주소를 알려주시면 보내드리겠습니다.

차후에 ORACLE 11 R2 설치 글을 올리겠습니다. 그때는 TEXT와 그림으로 같이 올리겠습니다.

 

시스템 사양

VMWARE : Workstation 7.1.3

LINUX : fedora 12

JDK : jdk-6u16-linux-i586.bin

APACHE : httpd-2.2.13.tar.gz

TOMCAT : tomcat-6.0.20.tar.gz

apache & tomcat connectors : tomcat-connecors-1.2.28-src-tar.gz

OPENSSL : fedora 12 기본 버전(OPENSSL을 삭제하고 source버전으로 설치 하려 했으나 실패)

 

 

rpm으로 설치 하려고 하는 패키지가 있는지 확인!!(java/jdk/tomcat/apache/http)

기본 gcc/zlib가 있어야 함.

selinux disabled

 

1. jdk 설치 & /etc/profile 수정

[root@www local] # chmod +x jdk-6u16-linux-i586.bin

[root@www local] # ./jdk-6u16-linux-i586.bin

[root@www local] # mv jdk-6u16-linux-i586.bin /usr/local/src/java

[root@www local] # vi /etc/profile

JAVA_HOME=/usr/local/src/java

export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*:.

추가한 후 저장하고 나온다.

[root@www local] # source /etc/profile

[root@www local] # java –version 해서 에러없이 버전 정보 나오면 설치 성공

(/etc/profile 설정만 잘 해주면 된다.)

 

2. apache 설치 & /etc/profile 수정(gcc 설치 확인)

[root@www local] # tar zxvf httpd-2.2.13.tar.gz

[root@www local] # cd httpd-2.2.13.tar.gz

[root@www httpd-2.2.13.tar.gz ] # ./configure \

--prefix=/usr/local/src/apache \ <---아파치 설치 할 위치

--enable-modules=ssl \

--with-ssl=/usr/local/openssl \ <--- openssl을 설치한 폴더

--enable-mods-shared=all \

--enable-so \

--enable-rewrite \

--enable-proxy \

--enable-proxy-ajp \

--enable-proxy-balancer \

--enable-proxy-http \

--enable-proxy-connect \

--enable-ssl <----------- 이부분이 중요합니다.

[root@www httpd-2.2.13.tar.gz ] # ./config.nice

[root@www httpd-2.2.13.tar.gz ] # make && make install

[root@www local] # vi /etc/profile

export APACHE_HOME=/usr/local/src/apache

export PATH=$PATH:$APACHE_HOME/bin

추가한 후 저장하고 나온다.

[root@www local] # source /etc/profile

[root@www local] # apachectl [start|stop]

[root@www local] # system-config-firewall에서 방화벽에가서 80포트를 열어 줌.

http://localhost에서

It works! 나오면 성공!!

 

3. tomcat 설치 & /etc/profile 수정

[root@www local] # tar zxvf tomcat-6.0.20.tar.gz

[root@www local] # mv tomcat-6.0.20 /usr/local/src/tomcat

(tomcat-6.0.20폴더를 /usr/local/src/에 이동하며 tomcat으로 폴더명 변경)

[root@www local] # vi /etc/profile

export CATALINA_HOME=/usr/local/src/tomcat

#export CATALINA_OPTS=“-server”

export PATH=$PATH:$CATALINA_HOME/bin

export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib/servlet-api.jar:.

추가한 후 저장하고 나온다.

[root@www local] # source /etc/profile

[root@www local] # catalina.sh [start|stop]

http://localhost:8080에서

고양이 나오면 성공!!

tomcat/conf폴더에서 web.xml안에 invoker 주석 2군데 삭제.

tomcat/conf폴더에서 context.xml에서

<context> 이 부분을 -> <context reloadable=“true” Privileged=“true”>로 수정

 

4. apache & tomcat connectors 연동

[root@www local] # tar zxvf tomcat-connecors-1.2.28-src-tar.gz

[root@www local] # cd tomcat-connecors-1.2.28-src/native

[root@www native] # ./configure --with-apxs=/usr/local/src/apache/bin/apxs

[root@www native] # make && make install

[root@www native] # vi /usr/local/src/apache/conf/mod_jk.conf (mod_jk.conf파일 생성)

<IfModule mod_jk.c>

JkWorkersFile “/usr/local/src/apache/conf/workers.properties”

JkLogFile “/usr/local/src/tomcat/logs/mod_jk.log”

JkLogLevel info

JkMount /*.jsp ajp13

JkMount /servlet/* ajp13

JkMount /examples/*.jsp ajp13

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]“

JkOptions +ForwardKeySize +ForwardURICompatUnparsed –ForwardDirectories

JkRequestLogFormat "%w %V %T"

</IfModule>

위와 같이 작성하고 저장하고 나온다.

[root@www native] # vi /usr/local/src/apache/conf/workers.properties (workers.properties파일 생성)

#workers.properties

workers.tomcat_home=/usr/local/src/tomcat

workers.java_home=/usr/local/src/java

ps=/

worker.list=ajp13

worker.ajp13.port=8009

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

위와 같이 작성하고 저장하고 나온다.

[root@www native] # vi /usr/local/src/apache/conf/httpd.conf 제일 마지막에 아래와 같이 추가한다.

#mod_jk.so

LoadModule jk_module modules/mod_jk.so

#JK Connection Configuration

include conf/mod_jk.conf

[root@www native] # catalina.sh stop -> start

[root@www native] # apachectl restart

Syntax error on line 2 of /usr/local/src/apache/conf/mod_jk.conf:

JkWorkersFile: Can't find the workers file specified

에러가나오면 위의 mod_jk.conf 파일안에

<IfModule mod_jk.c>

JkWorkersFile /usr/local/src/apache/conf/workers.properties

JkLogFile /usr/local/src/tomcat/logs/mod_jk.log

JkLogLevel info

JkMount /*.jsp ajp13

JkMount /servlet/* ajp13

JkMount /examples/*.jsp ajp13

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]“

JkOptions +ForwardKeySize +ForwardURICompatUnparsed ForwardDirectories

JkRequestLogFormat "%w %V %T"

</IfModule>

""(쌍따옴표)랑 -(ForwardDirectories 앞 하이픈)을 지우고 다시 쓰면 OK!

이렇게 설정하면 http://localhost 하면 localhost:8080 한 것 과 같이 고양이가 나오면 성공!!!

http://localhost해서 고양이가 안나오면 http://localhost/index.jsp 하면 고양이가 나온다!!!

-----------------------------------------------------------------------------------------------------------

5. OpenSSL 설정

SSL생성

1. openssl을 이용해서 개인키(비밀키) 생성

2. 개인키 확인

3. openssl로 CSR생성

4. CSR확인

5. 개인키 백업

6. 인증기관에 CSR접수

7. 네트워크 확인. SSL적용에 따른 방화벽(443번 포트 열어야 함)

8. 인증기관에서 CSR 파일 답긴 확인

[root@www native] # cd /usr/local/src/apache/conf

[root@www native] # mkdir sslkeys

[root@www native] # cd sslkeys

# openssl req -new -x509 -nodes -out server.crt -keyout server.key

Generating a 1024 bit RSA private key

.......................++++++

....++++++

writing new private key to 'server.key'

.....

Country Name (2 letter code) [GB]: KR <-------------한국이면 KR

(국가코드)

State or Province Name (full name) [Some-State]: Incheon <----- 도이름 (없으면 그냥 엔터)

Locality Name (eg, city) []:Incheon <------- 도시이름

Organization Name (eg, company) [Internet Widgits Pty Ltd]:com <------ 회사명

Organizational Unit Name (eg, section) []:development <-------부서명

Common Name (eg, YOUR name) []:xxxxxxxxxx <--- 사이트명 (정확히 기입을 해줘야 한다.)

Email Address []: (엔터)

# ls

server.crt server.key

# chmod 600 server.key

[root@www native] # vi /usr/local/src/apache/conf/httpd.conf

... (중략) ...

LoadModule ssl_module modules/mod_ssl.so <----------이부분이 없다면 좀 이상한건데 일단 적고 파일이 존재하는지 확인 해본다.

... (중략) ...

# Secure (SSL/TLS) connections

Include conf/extra/httpd-ssl.conf <---------- # 주석 해제

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

[root@www native] # vi /usr/local/src/apache/conf/extra/httpd-ssl.conf

SSLCertificateFile “/usr/local/src/apache/conf/sslkeys/server.crt”

SSLCertificateKeyFile “/usr/local/src/apache/conf/sslkeys/server.key”

#JSP 페이지 보이게 하기

JkMount /*.jsp ajp13

[root@www native] # vi /usr/local/src/apache/conf/httpd.conf (파일 제일 밑에 추가)

#HTTP로 들어오는 것을 HTTPS로 변환

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}

[root@www native] # system-config-firewall에서 방화벽에가서 443포트를 열어 줌.

 

그림 설명 없이 TEXT로 설명을 했지만 그래도만 따라하시면 성공 할 수 있습니다!!!

반응형
Posted by 은총애비!!
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함