카테고리 없음

nginx https만들기

Wood Pecker 2022. 8. 30. 19:48

1.개요

      도메인을 사전 준비한다.  

 

2.  컨테이너에 certbot 설치하기 

    # apt install python3
    # apt install python3 python3-venv libaugeas0
    # python3 -m venv /opt/certbot/
    # /opt/certbot/bin/pip install --upgrade pip
    # /opt/certbot/bin/pip install certbot certbot-nginx
    # ln -s /opt/certbot/bin/certbot /usr/bin/certbot

3. https 등록하기   

    # vi  /etc/nginx/conf.d/default.conf

         server_name domain_name;    ##<== localhost를 등록한 도메인 이름으로 변경한다.
    # certbot --nginx

        Please enter the domain name(s) you would like on your certificate ... 

        도메인을 입력한다.

         ==>  Certificate is saved at: /etc/letsencrypt/live/domain_name/fullchain.pem
         ==>  Key is saved at:         /etc/letsencrypt/live/domain_name/privkey.pem

        ==> This certificate expires 날짜(유료기간이 설정되어 있다)
        ==> These files will be updated when the certificate renews.

   

    /etc/nginx/conf.d/default.conf  파일에 다음과 같은 설정을 자동으로 해준다.

 

    server {
        server_name your_server_name;
         ...
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/your_server_name/fullchain.pem; # managed by Cert>
        ssl_certificate_key /etc/letsencrypt/live/your_server_name/privkey.pem; # managed by Ce>

        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
        if ($host = your_server_name) {
                return 301 https://$host$request_uri;
        } # managed by Certbot

        listen 80;
        server_name your_server_name/;
        return 404; # managed by Certbot
}

4. certificate은 3개월 마다 갱신을 하여야 한다.

    #  certbot  renew   

         See https://certbot.org/renewal-setup for instructions.

 

    정기적으로 자동갱신하도록 하여보자.  다음 명령어를 통하여 오류가 없는지 테스트 하여본다. 

     #  certbot renew --dry-run    <-- 실제 갱신은 하지 않지만 오류등의 문제를 서전에 파악할 수 있다.

 

    다음 명령어는 유효기간과 키값의 저장 위치 정보를 알 수 있다. 

    # certbot certificates

 

    # apt-get install cron     <== 프로그램 설치

    # crontab -e                  <== 편집기 실행  (숫자의미:  분(0~59) 시간(0~23) 날짜(1~31)  달(1~12)  요일(0~6)

       편집기에서 아래라인을 추가하고 저장한다.

        0 3 1 * * /usr/bin/certbot renew 

    # service cron start 

    # service cron stop

    # service cron status

     # service cron restart

 

[참고] https://gist.github.com/woorim960/dda0bc85599f61a025bb8ac471dfaf7a 


 

 

 

반응형