Nginx 범 도 메 인 이름 추가 https 무료 SSL 인증서 Let 's Encrypt (certbot) 설치 사용 절차

7347 단어
본 고 는 nginx 서버 에서 무료 Let 's Encrypt 증명 서 를 사용 하여 HTTPS 의 안전 암호 화 웹 페이지 를 제공 하 는 방법 을 소개 한다.
본 튜 토리 얼 의 설치 환경 은:
아 리 클 라 우 드 우 분투 16.04.3 LTS (GNU / Linux 4.4.0 - 105 - generic x86 64)STEP 1 Certbot 공식 사이트 에서 명령 을 다운로드 하고 집행 권한 을 설정 합 니 다.
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
certbot-auto 어디 에 두 든 좋 습 니 다. 처음부터 적당 한 곳 을 찾 아 놓 는 것 을 권장 합 니 다. 예 를 들 어 certbot-auto 디 렉 터 리 를 만 들 고 /opt/letsencrypt 을 여기에 두 는 것 을 권장 합 니 다.
mkdir /opt/letsencrypt
mv certbot-auto /opt/letsencrypt/
certbot-auto
모든 의존 세트 를 자동 으로 설치 할 수 있 도록 실행 STEP 2:
/opt/letsencrypt/certbot-auto

설치 certbot-auto 를 실행 하 는 과정 에서 아 리 클 라 우 드 서버 는 다음 과 같은 오 류 를 알려 줍 니 다.
OSError: Command /opt/eff.org/certbot/venv/bin/python2.7 - setuptools pkg_resources pip wheel failed with error code 2
잘못된 이 유 는 certbot-auto python 2.7 을 사 용 했 지만 python 3 의 virtualenv 를 호출 했 습 니 다. 시스템 에 여러 버 전의 python virtualenv 가 설치 되 어 있 기 때문에 어떻게 삭제 합 니까?
해결 방법:
apt-get purge python-virtualenv python3-virtualenv virtualenv

pip install virtualenv

그리고 설치 실행 certbot-auto, 드디어 설치 성공!!certbot-auto
실행 STEP 3 범 도 메 인 이름 인증서 생 성
sudo ./certbot-auto certonly \
--server https://acme-v02.api.letsencrypt.org/directory \
 --manual --preferred-challenges dns -d *.qzcool.com

실행 후 DNS TXT 검증 을 요구 합 니 다. 알림 정 보 는 다음 과 같 습 니 다.
lease deploy a DNS TXT record under the name
_acme-challenge.qzcool.com with the following value:

QcvPzuizmydLs1AmJF-J9eWOfOW7T89i******

Before continuing, verify the record is deployed.

범 도 메 인 이름 분석 은 검증 certbot-auto 이 필요 합 니 다. 도 메 인 이름 공급 자 에 설정 해 야 합 니 다. 하위 도 메 인 이름 은 DNS TXT 으로 설정 되 어 있 습 니 다. 기록 유형 선택 _acme-challenge 기록 은 TXT 기록 값 표시 줄 에 입력 하고 설정 후 다음 명령 을 실행 하여 올 바른 반환 여 부 를 볼 수 있 습 니 다.
dig _acme-challenge.qzcool.com txt
QcvPzuizmydLs1AmJF-J9eWOfOW7T89i****** 배치 가 끝 난 후에 Enter 를 누 르 면 계속 실행 합 니 다.
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/qzcool.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/qzcool.com/privkey.pem
   Your cert will expire on 2018-12-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"

그리고 인증 서 를 성공 적 으로 가 져 왔 습 니 다. 인증서 가 생 성 된 디 렉 터 리 를 기억 하고 Nginx 에 설정 해 야 합 니 다.
 /etc/letsencrypt/live/qzcool.com/fullchain.pem
  /etc/letsencrypt/live/qzcool.com/privkey.pem

구덩이 보충 DNS TXT당시 에 인터넷 이 공공 네트워크 를 비 추기 위해 도 메 인 이름 을 사이트 로 옮 겼 는데 일련의 구 덩이 를 만 났 다. 원래 무료 인 것 은 여기 서 각종 돈 을 요구 했다.아래 열거: 범 도 메 인 네 임 분석 10 원 / 년 무한 하위 도 메 인 네 임 20 원 / 년 TXT 기록 10 원 / 년 CNAME 기록 설정 10 원 / 년 URL 전환 설정 10 원 / 년 땅콩 껍질 도 메 인 네 임 서버 를 사용 하지 말 라 고 권 합 니 다. 너무 복잡 합 니 다. 내부 맵 서 비 스 를 사용 하면 무료 frp 를 사용 할 수 있 습 니 다. 제 다른 글 frp 사용 튜 토리 얼 은 참고 할 수 있 습 니 다.
처음 사용 하 는 STEP 4 이 라면 nginx 메 인 이름 certbot 설정 을 자동 으로 생 성 한 다음 인증서 설정 을 수정 할 수 있 습 니 다.방문 하 다.https://certbot.eff.org/, 당신 이 사용 하 는 소프트웨어 와 시스템 을 선택 하 십시오. 여기 서 우 리 는 nginx 와 Ubuntu 16.04 를 선택 합 니 다.
관련 소프트웨어 를 설치 하 다
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx 

인증서 생 성
$ sudo certbot --nginx

알림 입력 에 따라 https 를 추가 할 도 메 인 이름 을 입력 하 십시오. 마지막 으로 생 성 성공 을 알 립 니 다. 도 메 인 이름 에 접근 하면 https 를 사용 할 수 있 습 니 다.
쓰다
nginx -t
nginx 의 설정 디 렉 터 리 를 보고 내 서버 의 설정 디 렉 터 리 nginx 를 보고 설정 파일 을 수정 합 니 다.
vim /etc/nginx/sites-enabled/default 
/etc/nginx/nginx.conf 이 주석 을 지 워 버 리 세 요. 그렇지 않 으 면 방문 에 오류 가 발생 할 수 있 습 니 다. 이것 이 무슨 문제 인지 잠시 찾 지 못 했 습 니 다. 설정 을 수정 하면 다음 과 같 습 니 다.
# /etc/nginx/sites-enabled/default 
server_name *.qzcool.com; # managed by Certbot 
location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404. 
                proxy_pass http://172.17.0.1:8080;
                proxy_set_header    Host            $host:80;
                proxy_set_header    X-Real-IP       $remote_addr;
                proxy_set_header    X-Forwarded-For           $proxy_add_x_forwarded_for;
                proxy_hide_header   X-Powered-By; 
    #  try_files $uri $uri/ =404;
        } 
    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/dhbmw.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/dhbmw.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot 
}

server {
        listen 80 ;
        server_name www.qzcool.com;
        rewrite ^(.*)$ https://$host$1 permanent;
}

nginx 설정 파일 새로 불 러 오기
 nginx -s reload 

인증서 정기 업데이트
Let 's Encrypt 의 증빙 사용 기한 은 3 개 월 밖 에 되 지 않 습 니 다. 증빙 이 만 료 되 기 한 달 전에 certbot - auto 를 사용 하여 증명 서 를 업데이트 할 수 있 습 니 다. 실제 업데이트 전에 우 리 는 -- dry - run 매개 변 수 를 추가 하여 선진 적 인 테스트 를 할 수 있 습 니 다.
/opt/letsencrypt/certbot-auto renew --dry-run

테스트 에 문제 가 없 으 면 정식 명령 으로 업데이트 할 수 있 습 니 다.
/opt/letsencrypt/certbot-auto renew --quiet --no-self-upgrade

편 의 를 위해 이 업데이트 명령 을 / opt / letsencrypt / renew. sh 명령 원고 에 쓸 수 있 습 니 다.
#!/bin/sh
/opt/letsencrypt/certbot-auto renew --quiet --no-self-upgrade --post-hook "service nginx reload"

여기 서 인증 서 를 업데이트 한 후에 nginx 서버 의 설정 을 자동 으로 다시 불 러 올 수 있 도록 post - hook 설정 을 추가 합 니 다.
이어서 이 / opt / letsencrypt / renew. sh 명령 원 고 를 crontab 에 쓰 고 입력 try_files $uri $uri/ =404; 하여 crontab 서비스 파일 을 편집 합 니 다.
# m h  dom mon dow   command
30 2 * * 0 /opt/letsencrypt/renew.sh

공식 적 인 제안 은 이 명령 을 하루 에 두 번 실행 하여 서버 의 증빙 서 류 를 수시로 최신 상태 로 유지 할 수 있 도록 하 는 것 입 니 다. 여기 서 저 는 서버 가 매주 새벽 2 시 반 에 증빙 서 류 를 검사 하고 업데이트 하도록 설정 합 니 다. Certbot 은 증빙 이 만 료 되 기 한 달 전에 만 새로운 것 을 진행 할 수 있 고 증빙 이 만 료 되 지 않 으 면 업데이트 하지 않 습 니 다.
crontab 관련 명령:
이 사용자 의 crontab 서비스 가 성공 적 으로 만 들 어 졌 는 지 확인 하고 crontab -e 명령 으로 crontab 서 비 스 를 시작 합 니 다 crontab -l. 서비스 가 실행 되 었 는 지 확인 합 니 다 sudo service crond start413 Request Entity Too Large 오류 처리
nginx 메 인 프로필 nginx. conf 를 엽 니 다. 보통 vim / etc / nginx / nginx. conf 이 위치 에서 http {} 단 을 찾 아 다음 내용 을 수정 합 니 다.
client_max_body_size 2m;

그 중 2m 는 당신 이 필요 로 하 는 허용 파일 크기 로 수정 되 었 습 니 다.
참고: 1. NGINX 사용 Let 's Encrypt 무료 SSL 증빙 설정 HTTPS 안전 암호 화 홈 페이지 교육
2. Certbot nginx 에서 SSL 설정

좋은 웹페이지 즐겨찾기