※ 기본적으로 Listen 설정에 80 및 443 포트가 추가되어 있어야 합니다.
/etc/apache2/apache2.conf 파일에 Listen 443 만 추가해 주시면 됩니다.
안녕하세요. 도정진입니다.
기본적으로 웹사이트 보안을 위해서 SSL 을 적용해야 하는데 지금은 대부분 ProxyPass 를 이용하여 사이트를 운영중이라 일반 가상 호스트에 적용하는 방법은 적지 않도록 하겠습니다.
(기본적으로 방식이 비슷하기 때문에 이 글로써도 응용이 가능합니다.)
실제로 저는 보안에 대해서 잘 모르기 때문에 SSL 을 적용하면 보안성이 높아진다고만 알고 있습니다. SSL TLS 가 무엇인지도 정확히 모릅니다.
다음에 공부 한번 해보도록하고 오늘은 야매로 SSL 이 작동하게만 해 볼 예정입니다.
SSL 의 경우 기본적으로 공인된 기관에서 발급을 받으면 아래처럼 정상적으로 나오지만 셀프 사인 (openssl) 을 통해서 만들면 에러가 발생합니다.
구글 사이트의 경우 기본적으로 https 연결이 기본인데 에러가 발생하지 않고 마지막 사진처럼 세부항목을 확인해 보면 모두 녹색입니다. 그러나 openssl 로 자가 인증서를 만들게 되면 인증서 에러가 날 뿐이지, SSL 기능적 면에는 문제가 없는것으로 알고 있습니다.
그럼 바로 적용해 보도록 하겠습니다.
처음으로 일단 openssl 패키지가 필요합니다.
apt-get install openssl |
그 다음 아파치 서버의 SSL 모듈을 활성화 합니다.
a2enmod ssl |
그 다음 ssl 인증서 파일이 저장될 위치를 생성합니다.
저는 /etc/apache2/ssl 폴더에 키 파일과 인증서를 저장할 생각입니다.
mkdir /etc/apache2/ssl |
그 다음 아래의 명령어로 인증서를 생성합니다.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt |
그리고 인증서에 필요한 정보를 물어봅니다. 그냥 아무 문자나 입력해도 됩니다. 저는 아래와 같이 입력하였습니다.
생성된 인증서를 확인합니다.
그 다음 현재 사용하고 있는 ProxyPass 가상호스트에 대해서 설정을 합니다. 설정에 편리함을 추구하기 위해서 conf 파일 내용을 첨부합니다.
<Virtualhost *:80> ServerName subdomain.yourdomain.com RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> # http 로 접속할 때 https 로 리다이렉트 구문 <VirtualHost *:443> ServerName subdomain.yourdomain.com ServerAlias "" SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key SSLProtocol +TLSv1.2
ProxyPreserveHost On SSLProxyEngine On ProxyRequests Off RequestHeader set Front-End-Https "On"
<Location /> Order allow,deny Allow from all ProxyPass http://your_application_ip_adress:port/ ProxyPassReverse http://your_application_ip_adress:port/ </Location> </Virtualhost>
|
위는 공유기 설정창을 http -> https 로 redirect 하는 가상호스트 설정파일입니다.
다음으로 guacamole 가상호스트 설정을 보겠습니다.
<Virtualhost *:80> ServerName subdomain.yourdomain.com RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost>
<VirtualHost *:443> ServerName subdomain.yourdomain.com ServerAlias "" SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key SSLProtocol +TLSv1.2
ProxyPreserveHost On SSLProxyEngine On ProxyRequests Off RequestHeader set Front-End-Https "On"
<Location /> Order allow,deny Allow from all ProxyPass http://127.0.0.1:8080/guacamole/ max=20 flushpackets=on ProxyPassReverse http://127.0.0.1:8080/guacamole/ ProxyPassReverseCookiePath /guacamole/ / </Location> <Location /websocket-tunnel> Order allow,deny Allow from all ProxyPass ws://127.0.0.1:8080/guacamole/websocket-tunnel ProxyPassReverse ws://127.0.0.1:8080/guacamole/websocket-tunnel </Location> </Virtualhost>
|
적용은 아래처럼 잘 됩니다.
감사합니다.
'서버 > 리눅스 서버' 카테고리의 다른 글
15.2 [Debian 8] 버추얼 박스 최신버전 설치하기 (Virtualbox 5.1.8) + phpvirtualbox 설치하기 (3) | 2016.11.06 |
---|---|
22 . 우분투/데비안 쉘에서 Youtube 영상 다운받기 (Youtube-dl / 4K) (4) | 2016.09.16 |
21.1 Plex Media Server Youtube Channel Plug-in (유튜브 플러그인 설치하기) (0) | 2016.06.11 |
21. 우분투 / 데비안 Plex Media Server 설치하기 (Docker on Synology) (0) | 2016.06.11 |
시놀로지 Plex Media Server 설치하기 (Synology / Xpenology) (3) | 2016.06.11 |
댓글