본문 바로가기

~2023

[Server] Apache2 https로 설정하기

728x90
반응형

Apache2

Tomcat9

Reverse Proxy

mod_proxy


별도의 설정 없이 웹 서버를 열면 기본으로 http로 연결이 된다.

http는 다른 사람이 볼 수 있기 때문에 https를 통해 보안을 강화 시켜야 한다.

https를 설정하기 위한 순서는 다음과 같다.

1. 도메인 구매

2. CA에 인증서 요청한 후에 발급 받기

3. 설정 파일에 적용

4. 가상 호스트 파일에 적용


1. 도메인 구매

 

도메인은 원하는 플랫폼에서 구매하면 되기 때문에 생략하겠다.


2. CA에 인증서 요청한 후에 발급 받기

 

나는 Let's Encrypt에서 CA를 요청했는데 여기는 3개월에 한 번씩 갱신해줘야 한다고 한다.

그런데 Certbot을 사용하면 Let's Encrypt 인증서를 자동으로 발급/갱신 해준다고 한다.

그래서 Cerbot이라는 갱신 봇을 설치하는 방법은 다음과 같다.

$ sudo apt update
$ sudo apt upgrade


# 봇 설치
$ sudo apt install certbot

Certbot에서 Standalone 방식을 이용해 인증서를 발급 받기 위해서는 서버가 중단 되어야 한다.

# 포트가 겹치기 때문에 서버 중단
$ systemctl stop apache2


# 인증 요청
$ sudo certbot certonly --standalone -d [도메인]

 

[도메인]에는 자신이 구매한 example.com 등을 넣어 주면 된다.

자신의 이메일을 삽입하고 yes, yes로 넘기다보면 IMPORTANT NOTES에 Congratulations라고 뜨면 잘 따라 온 것이다.


3. 설정 파일에 적용

 

# 경로 이동
$ sudo vi /etc/apache2/ports.conf


# ports.conf 내부에 아래 코드 추가
<IfModule ssl_module>
	Listen 443
</IfModule>

그리고 ssl 모듈을 활성화 시켜 준다.

$ sudo a2enmod ssl

4. 가상 호스트 파일에 적용

 

설정은 다 끝냈으니 적용만 시켜주면 된다.

http(80 포트)에 접속 시 https(443 port)로 리다이렉트 해주면 된다.

sudo vi 000-default.conf을 하고 밑에 코드처럼 작성하자

# 80 port 설정 태그에 추가
<VirtualHost *:80>
	RedirectPermanent / https://[도메인]
</VirtualHost>

# 443 port 설정 태그에 추가
<VirtualHost *:443>
	SSLEngine on
	SSLCertificateFile /etc/letsencrypt/live/[도메인]/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/[도메인]/privkey.pem
</VirtualHost>

 

 

 

 

 

 

728x90
반응형