네트워크를 사용하는 서비스를 할 때, SSL(Secure Sockets Layer)/TLS(Transport Layer Security) 인증서를 등록해서 https 통신을 할 수 있도록 해야 안전한 서비스를 할 수 있다. 그런데 일반적으로는 SSL 인증서를 발급 받으려면, SSL 발급해주는 사이트에서 일정 비용을 내고 인증서를 구입을 해야 한다.
인증서 비용이 부담이 없다면 그냥 구입해서 사용하는 것이 편하긴 하지만, 그냥 간단히 Study를 목적으로 잠깐 사용할 것이라면 비용을 지불하기 조금 아까 울 수 있다.
Let’s Encrypt라는 인증 기관에서는 무료로 사용할 수 있는 SSL 인증서를 제공한다. 유효기간이 90일 정도라 주기적으로 갱신해야 겠지만 Study가 목적이라면 충분한 기간이다.
Let’s Encrypt 인증서를 발급 받으려면, 먼저 인증서를 설치할 server와 public domain이 준비되어 있어야 한다.
준비가 다 되었다면, 먼저 letsencrypt을 설치한다.
sudo apt-get update
sudo apt-get install letsencrypt
설치가 완료되었으면 아래 명령을 실행하면, DNS에 등록할 TXT 레코드를 확인 할 수 있다.
sudo certbot certonly --manual -d [yourdomain.com] --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
TXT 정보를 DNS에 등록하고 발급을 계속 진행하면 /etc/letsencrypt/achive 에 인증서가 발급 된 것을 확인 할 수 있다.
/etc/letsencrypt/achive/<yourdomain.com>
├── cert.pem // your domain 인증서 public key
├── chain.pem // Intermediate 인증서
├── fullchain.pem // cert.pem + chain.pem
└── privkey.pem // cert.pem 비밀 키
총 4개의 파일이 생성되어 있다. 이 인증서 파일을 사용하여 서버에 SSL 인증서를 설정하여 사용하면 된다.