구글에서 더 좋은 SEO를 평가받기 위해서는 https 통신을 사용해야 합니다. https 통신은 443 포트를 이용하여 진행되며 SSL 인증서가 있어야 합니다. 대부분 SSL 인증서는 유로로 구매하여 이용할 수 있습니다. 하지만 Let's Encrypt를 이용하면 무료로 https 통신을 할 수 있습니다. letsencryptSSL 인증서를 사용하고 있는 홈페이지를 의외로 많은 곳에서 찾아 볼 수 있습니다.


먼저 letsencrypt 패키지를 설치하도록 하겠습니다.

1
sudo apt-get install letsencrypt

위 명령어로 손쉽게 패키지를 설치할 수 있습니다.


이후에는 letsencrypt를 이용하여 SSL 인증서를 생성합시다. 단 인증을 받기 위해서는 http 통신이 가능한 도메인을 Nginx를 이용해서 열어놔야 합니다. 이후

1
letsencrypt certonly --webroot --webroot-path=/home/... -d domain.com -d www.domain.com

위 명령어로 생성하는데 --webrootNginxroot와 일치시키고 -d에는 자신이 사용하는 도메인을 지정하면 됩니다. 저는 위 2개의 도메인을 같은 페이지에 사용할 예정이므로 위와같이 입력하였습니다.



Nginx에 등록해야할 SSL 인증서는 fullchainprivkey, dhparam이 필요합니다. 위 명령어로 앞에 2가지는 생성이 되었지만 dhparamopenssl을 이용하여 생성해야 합니다.

1
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

상당한 시간이 걸리므로 차분히 기다리면 됩니다 :)


발급받은 인증서는 3개월마다 갱신을 해주어야 하며 아래 명령어로 갱신할 수 있습니다.

1
letsencrypt renew

인증서 갱신을 자동화하기 위해선 아래 규칙을 만들어 놓으면 됩니다.

1
crontab -e
1
2
10 5 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
15 5 * * 1 /usr/sbin/service nginx reload


이제 생성된 인증서를 Nginx에 등록해 보도록 하겠습니다.

1
sudo vi /etc/nginx/sites-available/default
1
2
3
4
5
6
7
8
9
server {
    listen 443 ssl http2;
    server_name www.domain.com;
    root /home/...;

    ssl_certificate "/etc/letsencrypt/live/www.domain.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/www.domain.com/privkey.pem";
    ssl_dhparam "/etc/ssl/certs/dhparam.pem";
}

위와같이 등록하고 Nginx를 재시작해 주십시오.

1
sudo systemctl restart nginx
WRITTEN BY

배진오

소비적인 일보단 생산적인 일을 추구하며, 좋아하는 일을 잘하고 싶어합니다 :D
im@baejino.com