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

카테고리

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

[Linux Server] Apache SSL

Linux / 2017. 12. 6. 13:14
반응형

[Linux Server] Apache SSL

 

XXX.key -> 비밀키

XXX.crt -> 인증서

ca.pem -> ROOT CA 인증서

 

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

[root@www conf] # mkdir sslkeys

[root@www sslkeys] # cd sslkeys

 

[root@www sslkeys] # openssl req -new -x509 -nodes -out server.crt -keyout server.key -days 999

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 []: (엔터)

 

 

 

[root@www sslkeys] # ls

server.crt server.key

[root@www sslkeys] # chmod 600 server.key

 

 

 

 

[root@www sslkeys] # cp /usr/local/src/apache/conf/httpd.conf /usr/local/src/apache/conf/httpd.conf.ssl

[root@www sslkeys] # 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 sslkeys] # cp /usr/local/src/apache/conf/extra/httpd-ssl.conf /usr/local/src/apache/conf/extra/httpd-ssl.conf.ssl

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

아래와 같이 추가 하고 기존 SSLCertificateFile/ SSLCertificateKeyFile은 주석 처리!!

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

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

※ ""(쌍따옴표) 주의

 

 

 

 

<VirtualHost> 안에 아래 내용 추가

 

#JSP 페이지 보이게 하기

JkMount /*.jsp ajp13

JkMount /servlet/* ajp13

JkMount /*.qual ajp13

JkMount /*.admin ajp13

JkMount /*.board ajp13

JkMount /*.bbs ajp13

 

 

 

 

[root@www sslkeys] # cp /usr/local/src/apache/conf/httpd.conf /usr/local/src/apache/conf/httpd.conf.ssl2

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

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

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

 

 

 

 

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

 

 

 

 

아파치/톰캣 재실행 후 http://localhost 또는 http://ip로 접속 했을 경우 http가 https로 자동 변환 되는 것을 확인

 

혹여 아파치 재실행 중 아래와 같이 나온다면

/usr/local/src/apache/conf/extra/httpd-ssl.conf 파일을 열고 120번째줄에 가보면

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

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

를 추가한 내용이 있을 겁니다. “”(쌍따옴표) 지우고 다시 쓰고 저장하고 나와 아파치 재실행 하면 됩니다.

 

 

 

 

 

 

 

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

4. apache & tomcat connectors 연동

 

[root@localhost qual] # tar zxvf tomcat-connectors-1.2.36-src.tar.gz

[root@localhost qual] # cd tomcat-connectors-1.2.36-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 /*.qual ajp13

JkMount /*.admin/* ajp13

JkMount /*.board/* ajp13

JkMount /*.bbs/* 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] # cp /usr/local/src/apache/conf/httpd.conf /usr/local/src/apache/conf/httpd.conf.bak

[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

 

아래 빨간 부분을 추가

#ServerName www.example.com:80을 주석 제거 하고 127.0.0.1 변경

ServerName 127.0.0.1

 

<IfModule dir_module>

DirectoryIndex index.html index.jsp -> 추가

</IfModule>

 

#DocumentRoot "/usr/local/src/apache/htdocs"

DocumentRoot "/usr/local/src/tomcat/webapps/ROOT" ----> apache 홈디렉토리를 tomcat 홈디렉토리로 변경

 

[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 /*.qual ajp13

JkMount /*.admin ajp13

JkMount /*.board ajp13

JkMount /*.bbs 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 한 것 과 같이 고양이가 나오면 성공!!!

 

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

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

 

「rpm으로 httpd 설치 되어 있는지 확인」

[root@localhost qual]# rpm -qa |grep http

httpd-tools-2.2.15-5.el6.i686

httpd-2.2.15-5.el6.i686

[root@localhost qual]# rpm -e --nodeps httpd-tools-2.2.15-5.el6.i686

[root@localhost qual]# rpm -e --nodeps httpd-2.2.15-5.el6.i686

[root@localhost qual]# rpm -qa |grep http

[root@localhost qual]#

 

 

[root@localhost qual] # tar zxvf httpd-2.2.22.tar.gz

[root@localhost qual] # cd httpd-2.2.22

[root@localhost httpd-2.2.22 ] # ./configure \

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

--enable-modules=ssl \

--with-ssl=/usr/bin/openssl \ <--- 기본 /usr/bin/openssl 그 외 openssl을 설치한 폴더 (rpm -ql 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@localhost httpd-2.2.22 ] # ./config.nice

 

 

 

configure: error: ...No recognized SSL/TLS toolkit detected 에러시

yum install openssl-devel

 

[root@localhost httpd-2.2.22 ] # make && make install

 

 

 

[root@localhost httpd-2.2.22 ] # cp /etc/profile /etc/profile.bak2

[root@localhost httpd-2.2.22 ] # vi /etc/profile

export APACHE_HOME=/usr/local/src/apache

export PATH=$PATH:$APACHE_HOME/bin

 

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

 

 

[root@localhost httpd-2.2.22 ] # source /etc/profile

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

 

 

 

[root@localhost httpd-2.2.22 ] # apachectl [start|stop]

 

 

 

http://localhost에서 또는 http://IP주소

It works! 나오면 성공!!

 

 

Apache도 생각 보다 어렵지 않습니다.

 

따라만 하시면 됩니다.

 

만약 저와 같은 버전이 필요하시면 메일 주소 알려주시면 보내드리겠습니다.

 

감사합니다.

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

[LINUX ERROR] apache 설치중 SSL/TLS 설치 에러

 

설치 도중 SSL/TLS 관련 에러가 났습니다.

에러 내용은 아래와 같습니다.

 

checking for OpenSSL version... checking openssl/opensslv.h usability... no
checking openssl/opensslv.h presence... no
checking for openssl/opensslv.h... no
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
no OpenSSL headers found
checking for SSL-C version... checking sslc.h usability... no
checking sslc.h presence... no
checking for sslc.h... no
no SSL-C headers found
configure: error: ...No recognized SSL/TLS toolkit detected

 

에러 해결 방법

정말 간단 합니다.!!!

 

yum -y install openssl-devel

또는

yum -y install openssl*

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

최근에 달린 댓글

최근에 받은 트랙백

글 보관함