본문으로 바로가기







아파치와 톰캣이 연동된 상태에서 OpenSSL을 적용할 것이다. 아파치 설치 및 톰캣 연동에 대해서는 아래의 링크를 참고하면 된다.






OpenSSL 설치 및 인증서 생성



OpenSSL 설치 및 인증서 생성에 관한 부분은 아래 링크로 들어가  OpenSSL 설치 및 인증서 생성  부분을 참고하면 된다. 






OpenSSL 적용



1. SSL 디렉토리 생성 및 인증서 복사


관리의 편의를 위해 ssl 인증서를 모아둘 디렉토리를 생성한다. 


[mgt@localserver: ~$sudo mkdir /etc/apache2/ssl



생성한 디렉토리로 인증서를 복사한다.


[mgt@localserver: ~$sudo cp server.crt /etc/apache2/ssl/server.crt
[mgt@localserver: ~$sudo cp server.csr /etc/apache2/ssl/server.csr
[mgt@localserver: ~$sudo cp server.key /etc/apache2/ssl/server.key




2. SSL 모듈 활성


Apache의 SSL 모듈을 활성화한다. 이때 아파치를 재시작 하라는 메시지가 나오는데, 일단 무시한다.


[mgt@localserver: ~$sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  service apache2 restart




3. /etc/apache2/ports.conf 파일 수정


아래 내용을 ports.conf 파일에 추가한다.


[mgt@localserver: ~$sudo nano /etc/apache2/ports.conf
 
# 내용추가
<IfModule mod_ssl.c>
    Listen 443
</IfModule>




ports.conf 파일에 내용 추가



4. default-ssl.conf 파일을 복사


default-ssl.conf 파일을 복사해서 board-ssl.conf로 이름을 변경하였다. 복사한 파일명은 본인이 알기 쉽게 정하면 된다. (ex, 도메인명으로)


sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/board-ssl.conf




5. 복사한 파일 수정


위에서 복사한 파일을 수정한다.


[mgt@localserver: ~$sudo nano /etc/apache2/sites-available/board-ssl.conf
 
# 해당 부분 수정
SSLCertificateFile /etc/apache2/ssl/server.crt 
SSLCertificateKeyFile /etc/apache2/ssl/server.key






표시된 부분을 수정한 모습



다음으로 아래 사진에 표시한 부분의 주석(#)을 제거한다.





6. 000-default.conf (아파치 설정파일) 수정


아파치 기본 설정 파일인 000-default.conf 에 SSL 내용을 추가한다.


[mgt@localserver: ~$sudo nano /etc/apache2/sites-available/000-default.conf



# <VirtualHost *:80> 태그 안에 추가
RedirectPermanent / https://아이피 주소
 
 
# 000-default.conf 에 추가
<VirtualHost *:443>
 
        ServerAdmin webmaster@localhost
        #DocumentRoot /var/www/html
        DocumentRoot /var/lib/tomcat8/webapps/ROOT/
 
        JkMount /* tomcat1
 
        SSLEngine on 
        SSLCertificateFile /etc/apache2/ssl/server.crt 
        SSLCertificateKeyFile /etc/apache2/ssl/server.key
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>






<VirtualHost *:80> 태그에 추가한 RedirectPermanent / https://192.168.137.128 부분은 HTTP로 연결 시 자동으로 HTTPS로 연결되도록 설정하는 부분이다.


로컬일 경우 https://127.0.0.1 을 적으면 되고, 도메인을 사용 중이라면 https://도메인 을 적으면 된다.



<VirtualHost *:443> 태그 부분은 HTTPS 연결에 관한 부분이다. 위에서는 DocumentRoot에 톰캣의 배포 경로를 입력해둔 상태인데, 톰캣에 배포를 하지 않았다면, /var/www/ssl 이런 식으로 임의의 디렉토리를 만들고 거기에 html 파일을 만들어 둔다. 그리고 그 경로를 DocumentRoot에 적어두면 된다.


Ex) DocumentRoot /var/www/ssl



JkMount 부분은 아래의 톰캣 연동글을 참고하면 된다.





7. board-ssl 활성화


[mgt@localserver: ~$sudo a2ensite board-ssl
Enabling site board-ssl.
To activate the new configuration, you need to run:
  service apache2 reload




8. 방화벽 설정


방화벽에 OpenSSL의 포트인 443 포트로 접속을 허용하도록 변경한다


[mgt@localserver: ~$sudo ufw allow 443/tcp
Rule added
Rule added (v6)



방화벽 설정을 하고 443포트를 확인해보자.


[mgt@localserver: ~$] netstat  -lnp  | grep 443
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::443                  :::*                    LISTEN      -
tcp6       0      0 :::443                  :::*                    LISTEN      -
tcp6       0      0 :::443                  :::*                    LISTEN      -




9.  아파치 재시작

[mgt@localserver: ~$sudo /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.




10. 사이트 접속

아파치를 재시작했으면 브라우저에 https://아이피 주소 또는 https://127.0.0.1( = https://localhost 와 동일하다.)을 입력한다.





개인 서명이라 신뢰할 수 없다고 나온다. 하지만 보안 접속은 정상적으로 잘 된다. 









RSS구독 링크추가 트위터 이메일 구독