불친절한 블로그

[SSL] Let's encrypt 인증서 발급(https 적용하기) 본문

Project/회사 홈페이지 구축

[SSL] Let's encrypt 인증서 발급(https 적용하기)

오누! 2023. 1. 4. 18:14
반응형

실습 환경

OS : Amazon Linux
웹서버 : Apache

https://onu0624.tistory.com/105

 

 

[SSL] 무료 SSL 발급하기

지난번에 내도메인.한국에서 무료 도메인을 만들어보았다. https://onu0624.tistory.com/104 [Domain] 무료 도메인 만들기(내도메인.한국) 도메인을 만들기 위해선 돈이 든다. 근데 실습할땐 돈 내기 아깝다

onu0624.tistory.com

 

 

 

이전에 zeroSSL을 사용하는데 문제가 생겼다.

무료 인증서지만 3번까지가 무료였고 그 이후부터는 연장하는데도 무료 서비스를 이용할 수 없게 되었다.

 

새로운 인증서가 필요해서

Let's encrypt를 적용시키기로 했다.

 

우선 ec2 인스턴스에 접근한다.

Extras 저장소로 사용되는 EPEL을 설치하기 위해 다음과 같이 진행한다.

repolist 명령어를 사용해서 EPEL이 존재하는지 확인한다.

$ yum repolist

 

EPEL이 없으니 설치를 해준다.

$ sudo yum install epel-release 
     # 해당 명령어로 설치하려 했지만 hint로 다른 설치 명령어를 알려주었다.

$ sudo amazon-linux-extras install epel

 

epel이 설치되었는지 확인하고,

certbot을 설치한다.

$ yum repolist | grep epel

$ sudo yum install certbot python2-certbot-apache

 

현재 실행중인 웹서버를 종료하고

인증서를 발급한다.

$ sudo systemctl stop httpd

$ sudo certbot --standalone -d domain.com -d www.domain.com certonly

 

apache 웹서버에 인증서 설정하기 위해 인증서들의 위치를 알려준다.

$ sudo ls -al /etc/letsencrypt/live/domain.com

 

인증서들이 해당 위치에 잘 있는것을 확인했으니

ssl.conf에 적용해준다.

$ sudo vi /etc/httpd/conf.d/ssl.conf
<VirtualHost *:443>

SSLCertificateFile /etc/letsencrypt/live/domain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain.com/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
...
</VirtualHost>

 

아파치를 재시작해준다.

$ sudo systemctl start httpd

잘 적용되었는지 확인해준다.

 

인증서 자동 갱신 설정

crontab을 사용해서 자동으로 1달마다 갱신되도록 설정해준다.

$ sudo vi /etc/crontab
0 0 1 * * root systemctl stop httpd && certbot renew -q && systemctl start httpd

 

crontab을 수정 후 crond 데몬 재시작 해준다.

$ sudo systemctl restart crond

 

반응형
Comments