letsencrypt-win-simple 에서 다운로드 받아 적당한 위치에 압축을 푼다.
인증서가 만료되기 한 달 전에 메일로 알려준다.
nginx public 폴더 절대 경로를 지정해도 되고 nginx를 reverse proxy로서 이용하고 있다면 실제로 포워딩 되는 서버의 웹 루트 폴더의 절대 경로를 적으면 된다. 나의 경우는 node.js express 서버를 이용하고 있기 때문에 express 프레임워크의 static path로 설정한 경로를 적었다.
letsencrypt 인증서는 꽁짜라 유효 기간이 3개월 밖에 되지 않는다. 3개월마다 수동으로 인증서를 갱신하려면 정말 귀찮은데 스케쥴러로 등록해두면 2개월 좀 넘었을 때 자동으로 갱신해준다. 무조건 y.
위 과정에서 에러가 나지 않았으면,
C:\Users\사용자계정\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org
디렉토리 안에 인증서와 키체인이 생성되었을 것이다.
nginx에 설정을 추가하자.
server {
listen 443;
server_name ahribori.com;
ssl_certificate C:\Users\사용자계정\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\ahribori.com-chain.pem;
ssl_certificate_key C:\Users\사용자계정\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\ahribori.com-key.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://포워딩 될 서버 주소;
proxy_redirect off;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
설정을 저장한 다음,
nginx.exe -s reload
nginx를 재시작 하고 ahribori.com으로 접속해보면 인증된 https로 접속되는 것을 확인할 수 있다.