Apache/ Tomcat/ Openssl 연동
아파치 수동설치
httpd설치
아래 사이트에서 최신 tar.gz압축 파일 설치
http://mirror.apache-kr.org//httpd/
wget명령어로 설치
wget http://mirror.apache-kr.org//httpd/httpd-2.4.59.tar.gz
압축해제
tar xvfz httpd-2.4.59.tar.gz
apr설치
아래 사이트에서 최신 tar.gz압축 파일 설치
http://mirror.apache-kr.org/apache/apr/
wget명령어로 설치
wget http://mirror.apache-kr.org/apr/apr-1.7.4.tar.gz
압축해제
tar xvfz apr-1.7.4.tar.gz
apr-util설치
아래 사이트에서 최신 tar.gz압축 파일 설치
http://apache.mirror.cdnetworks.com/apr/
wget명령어로 설치
wget http://apache.mirror.cdnetworks.com/apr/apr-util-1.6.3.tar.gz
압축해제
tar xvfz apr-util-1.6.3.tar.gz
pcre설치
아래 사이트에서 최신 tar.gz압축 파일 설치
https://sourceforge.net/projects/pcre/files/pcre
wget명령어로 설치
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
압축해제
tar xvfz pcre-8.45.tar.gz
중간 점검
apr 설정
apr설치된 폴더로 이동 후
./configure --prefix=/engine/apacheModules/apr-1.7.4
make
make install
(make가 안될시 yum으로 make설치)
apr-util 설정
apr-util 설치된 폴더로 이동 후
./configure --prefix=/engine/apacheModules/apr-util-1.6.3 --with-apr=/engine/apacheModules/apr-1.7.4
make
make install
( #include <expat.h> 문제일 경우 yum install expat-devel 설치 )
pcre 설정
pcre 설치된 폴더로 이동 후
./configure --prefix=/engine/apacheModules/apr-util-1.6.3 --with-apr=/engine/apacheModules/apr-1.7.4
httpd 설정
아파치 설정 폴더를 따로 두기 위해 새로운 폴더 생성 ( /engine/apacheModules/apache )
httpd 설치된 폴더로 이동 후
./configure --prefix=/engine/apacheModules/apache --enable-modules=most --enable-mods-shared=all --enable-so --with-apr=/engine/apacheModules/apr-1.7.4 --with-apr-util=/engine/apacheModules/apr-util-1.6.3
make
make install
http 실행
마지막에 생성한 /engine/apacheModules/apache폴더 안에 conf 폴더에 잇는 httpd.conf 파일에서 ServerName부분 주석해제하고 아래로 변경
ServerName localhost
설정을 끝내고 bin폴더에 잇는 apachectl로 실행
engine/apacheModuels/apache/bin/apachectl start
80번 포트 열기
firewall-cmd --permanent --zone=public --add-port=80/tcp && firewall-cmd --reload && firewall-cmd --list-ports
자바 설치
자바1.8 설치
yum install -y java-1.8.0-openjdk-devel
설치된 경로 확인
which javac
자바환경 변수등록
readlink -f /bin/javac
나온 경로에서 맨 뒤 설치경로 빼고 복사
vim /etc/profile
해당 파일 맨 최하단에 추가 아래 코드추가
export JAVA_HOME={방금 복사한 내용}
변경한 파일적용
source /etc/profile
자바환경변수 확인
echo $JAVA_HOME
톰캣 설치
아래 사이트에서 최신 tar.gz압축 파일 설치
http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/
wget명령어로 설치
wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/apache-tomcat-8.5.9.tar.gz
압축해제
tar zxvf apache-tomcat-8.5.9.tar.gz
8080포트 열기 (tomcat기본 포트)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
방화벽 재시작
systemctl restart firewalld
방화벽 확인
firewall-cmd --zone=public --list-all
톰캣 실행해보기
설치한 폴더 안에 bin폴더로 이동후
./startup.sh
아파치 톰캣 연동 - mod_jk.so
아래 사이트에서 최신 tar.gz압축 파일 설치
https://dlcdn.apache.org/tomcat/tomcat-connectors/jk
wget명령어로 설치
wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.49-src.tar.gz
(설치가 안되면 sudo yum install -y ca-certificates 명령어 실행 )
압축해제
tar zxvf tomcat-connectors-1.2.49-src.tar.gz
tomcat-connect 설정
설치한 tomcat-connect 폴더 안에 native폴더로 이동 후
./configure --with-apxs=/engine/apacheModules/apache/bin/apxs
make && make install
mod_jk.so 설치 되어잇는지 확인
find / -name mod_jk.so
workers.properties 파일 생성
설치한 아파치 conf 폴더로 이동 후
vim ./workers.properties
...
worker.list=tomcat11
worker.tomcat_lb.type=lb
worker.tomcat_lb.balance_workers=tomcat01
worker.tomcat01.port=8009
worker.tomcat01.host=localhost
worker.tomcat01.type=ajp13
-- 아파치에 연동할 톰캣
httpd-vhost.properties 설정변경
conf폴더 하위에 extra폴더 안에 잇는 httpd-vhost.properties수정
vim ./extra/httpd-vhost.properties
...
<VirtualHost *:80>
ServerName localhost
JkMount /* tomcat11
</VirtualHost>
-- JkMount로 들어온 경로만 톰캣으로 연동
-- JkUnMount 추가시 톰캣연동 안할 경로 생성
httpd-conf 파일 수정
LoadModule 부분에 mod_jk.so추가 ( 경로는 위에서 확인 가능 )
LoadModule /engine/apacheModules/apache/modules/mod_jk.so
httpd-vhosts.conf 연동하는 부분 주석 제거
Include conf/extra/httpd-vhosts.conf
workers.properties 파일 연동
httpd.conf 파일 최하단에 아래 코드 추가
<IfModule jk_module>
JkWorkersFile /engine/apacheModules/apache/conf/workers.properties
JkMount /* tomcat11
</IfModule>
tomcat 설정파일 server.xml수정
<Connector port="8009" address="0.0.0.0" secretRequired="false" protocol="AJP/1.3" redirectPort="8443" />
주석 처리되어 있는 AJP/1.3 부분 주석해제
Tomcat에 war넣기
- 기본적으로 tomcat에 war로 감싼 프로젝트를 넣으려면 webapps안에 넣어주면 된다.
<Context path="/" docBase="ex001" reloadable="true"/>
넣은 war파일을 server.xml에서 인식할수 있게 Host태그 안에 주입
openssl 적용
openssl 설치
yum install openssl
openssl 버전 확인
openssl version
mod_ssl 설치
yum install mod_ssl
개인키 생성
openssl genrsa -des3 -out [개인키 이름].key 2048
(패스워드 입력)
CSR 생성
openssl req -new -key [개인키 이름].key -out [csr이름].csr
(개인키 비밀번호 입력 )
Country Name (2 letter code) [XX]:kr
State or Province Name (full name) []:seoul
Locality Name (eg, city) [Default City]:gasan
Organization Name (eg, company) [Default Company Ltd]:nara
Organizational Unit Name (eg, section) []:khs
Common Name (eg, your name or your server's hostname) []:khs
Email Address []: khs
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (비밀번호 입력)
An optional company name []: (아무거나 입력)
crt 파일 생성
openssl x509 -req -days 365 -in [CRS파일이름].csr -signkey [개인키 이름].key -out [CRT 파일이름].crt
(개인키 비밀번호)
.keystore 생성
openssl pkcs12 -export -in [개인키 이름].crt -inkey test.key -out .keystore -name tomcat
(비밀번호) * 3
httpd.conf 파일 수정
- /etc/httpd/modules 아래에 mod_ssl.so 파일을 아파치 modules폴더 안에 복사
mod_ssl.so / mod_socache_shmcb.so 활설화
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
httpd-ssl.conf 활성화
Include conf/extra/httpd-ssl.conf
conf/extra/httpd-ssl.conf 파일 수정
- JkMount 설정
SSLEngine on
SSLCertificateFile [인증서 파일 경로]
SSLCertificateKeyFile [키파일 경로]
SSLCACertificateFile [중계인증서 파일경로]
tomcat 하위 server.xml 수정
<connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxthreads="150" sslenabled="true" scheme="https" secure="true" clientauth="false" sslprotocol="TLS" keystorepass="[생성한 keystore 비밀번호]" keystorefile="[생성한 keystore경로]" />
끝
실행은 아파치부터
참고한 곳 : https://waspro.tistory.com/383