728x90
오늘도 한창 헤맨 관계로 불친절한 글을 써보려 한다
본 문서의 환경 :
- Ubuntu 20.04.2 LTS
- Apache2
- lets encrypt certbot
- 도메인 : ex.kr (설명을 위한 예시 도메인)
내가 가꾸고자 하는 환경은 이렇다
apache2 에서 proxy 설정으로
sv.ex.kr 로 접속할 때는 localhost:8080 으로 연결 되고
fr.ex.kr 로 접속할 때는 localhost:8081 로 연결 되도록 하고싶다!!!!!
이전 환경에서는 http 로 했었는데, 보안상 마음에 걸려서 이번엔 https 를 시도했다.
인스턴스 : AWS 에서 Ubuntu20.04 인스턴스 생성, 도커 설치, apache2 설치
인증서 : 남들 하는 것처럼 snap 을 이용해서 certbot 도 받고 도메인 입력해서 인증서 설치
그런데 apache2 VirtualHost 설정 방법 찾기가 쉽지 않았다
그래서 내가 설정한 apache2 설정을 적어두려고 한다
먼저 아래는 sv.ex.kr 설정
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName sv.ex.kr
ServerAdmin {500에러시 사용자에게 보여줄 내 이메일 주소}
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyRequests Off
SSLProxyEngine on
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080*>
Order deny,allow
Allow from all
</Proxy>
SSLEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLCertificateFile /etc/letsencrypt/live/ex.kr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ex.kr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ProxyPass / http://127.0.0.1:8080/ nocanon
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
</IfModule>
그리고 fr.ex.kr 설정
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName fr.ex.kr
ServerAdmin {500에러시 사용자에게 보여줄 내 이메일 주소}
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyRequests Off
SSLProxyEngine on
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8081*>
Order deny,allow
Allow from all
</Proxy>
SSLEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLCertificateFile /etc/letsencrypt/live/ex.kr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ex.kr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ProxyPass / http://127.0.0.1:8081/ nocanon
ProxyPassReverse / http://127.0.0.1:8081/
</VirtualHost>
</IfModule>
둘 간의 차이점 : 네 줄
ServerName fr.ex.kr
<Proxy http://localhost:8081*>
ProxyPass / http://127.0.0.1:8081/ nocanon
ProxyPassReverse / http://127.0.0.1:8081/
혹시나 하는 마음에 000-default-le-ssl.conf 도 올림. certBot 이 바꾼 그대로 건든 것 없음
<IfModule mod_ssl.c>
<VirtualHost *:443>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerName ex.kr
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
SSLCertificateFile /etc/letsencrypt/live/ex.kr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ex.kr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
728x90
'Server' 카테고리의 다른 글
Jenkins 버전 업데이트 (0) | 2022.03.06 |
---|---|
Docker 이미지 <none> 태그만 골라서 몽땅 지우기 (0) | 2022.02.08 |
Ubuntu 18.04 LTS, Jenkins 설치시 GPG Error 해결 (0) | 2020.09.19 |
Gradle findsecbugs-plugin.jar lock 문제 해결 (0) | 2020.02.19 |
Ubuntu + Opencv-3.2.0 ( libopencv_java320.so ) (0) | 2019.07.16 |