Let’s Encrypt 를 사용해서 무료 SSL 인증서를 발급/사용할 수 있습니다.
도메인 업체를 통해서 SSL 인증서를 구매하면 대개 1년에 20~40만원 정도의 비용이 듭니다.
개인 홈페이지, 워드프레스를 이용한 블로그에서는 너무 큰 비용이죠.
단 개인이 직접 관리할 수 있는 서버가 있어야 하며, 도메인은 당연히 가지고 있어야겠죠.
certbot github에서 배포하는 let’s encrypt 를 사용해서 무료 SSL 인증서를 발급받아 설정해보겠습니다.
Let’s encrypt 를 통해서 생성한 인증서는 2가지 특징이 있습니다.
- 인증서 유효기간이 90일 입니다.
만료 쯤에 설정 때 기입하는 이메일로 안내도 오고, 갱신도 커맨드 한번이면 됩니다.
전혀 귀찮지 않습니다. - 멀티도메인이 지원 안됩니다.
www.buytoday.co.kr
buytoday.co.kr
모두 개별로 인증서를 발급 받아야하며, 하나의 웹사이트로 운영하고 싶으면 nginx 301 redirect 기능을 쓰면 됩니다.
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
// /etc/nginx/nginx.conf 에서 위와 같이 http 처리부분에서 301, https uri로 보냅니다.
// 나머지 처리들은 https 서버 블럭에서 처리해주면 됩니다.
설정은 CentOS 기준이며 우분투나 다른 곳에서도 다르지 않습니다.
# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt
# ./letsencrypt-auto certonly –manual –email 이메일 -d 적용할도메인
Y 한 번 누르시고, 그 다음 단계는 도메인 소유를 확인하기 위해 특정 디렉토리/파일에 해당 내용을 넣어두라는 겁니다.
제시하는 URL 주소에 파일을 만들고 내용도 넣어둡니다.
그리고 Enter를 한번 쳐주면 됩니다.
/etc/letsencrypt/live/도메인 디렉토리에 fullchain.pem, privkey.pem 파일이 생성 되었습니다.
이제 nginx.conf SSL 설정 부분에 아래로 세팅 해 주시면 됩니다.
ssl_cetificate /etc/letsencrypt/live/도메인주소/fullcahin.pem;
ssl_cetificate_key /etc/letsencrypt/live/도메인주소/privkey.pem;
그리고 nginx 재시작
# systemctl restart nginx
마지막으로 웹 브라우저에서 SSL 적용 자물쇠 확인
추가로 위에서 언급했듯이 만료 기간이 다가오면 이메일로 알람이 옵니다.
그때 콘솔에서 갱신을 해주면 됩니다.
# ./letsencrypt-auto renew
'프로그래밍' 카테고리의 다른 글
웹소켓 클라이언트가 socket.io 서버에? (0) | 2020.12.10 |
---|---|
마우스 우클릭 해제 드래그 방지 해제 초간단 해결 (0) | 2020.08.10 |
워드프레스 ftp 인증 오류 해결 (0) | 2020.06.16 |
Hyper-V 게스트 OS 고정 IP 설정하기 (0) | 2020.06.10 |
게임 개발을 시작하며... (1) (1) | 2020.06.10 |