Nginx 설정 Let 's Encrypt TLS 인증서
프로젝트 환경 구축
Git 설치 후 certbot (* 본명 letsencrypt *) 프로젝트 복제
$ git clone https://github.com/certbot/certbot
$ cd certbot
클론 이 완료 되면 명령 을 통 해 인증 서 를 가 져 올 수 있 습 니 다.
$ ./certbot-auto certonly --webroot -w /usr/local/nginx/html --email [email protected] -d example.com -d www.example.com -d other.example.com
--webroot
신청 방식 유형 -w /usr/local/nginx/html
으로 도 메 인 이름 프로젝트 를 신청 하 는 Webroot
과 경 로 를 설정 하고 정적 페이지 를 예 로 들 면location / {
root /usr/local/nginx/html;
index index.html;
}
이 방식 은
/usr/local/nginx/html
디 렉 터 리 아래 .well-known/acme-challenge
폴 더 를 만 든 다음 무 작위 파일 을 생 성하 여 접근 합 니 다. 예 를 들 어http://example.com/.well-known/acme-challenge/HGr8U1IeTW4kY_Z6UIyaakzOkyQgPr_7ArlLgtZE8SX 프로젝트 가 역방향 대 리 를 했 을 경우 -w
매개 변수 뒤에 있 는 경 로 를 대리 프로젝트 가 있 는 루트 디 렉 터 리 --email [email protected]
가 신청자 의 * * 메 일 박스 * 로 확보 하 십시오. 인증서 가 만 료 될 때 알림 메 일 -d example.com
을 * * * 신청 하 는 도 메 인 이름 * 으로 여러 개가 존재 할 수 있 습 니 다. 형식 -d -d
, * * 단 도 메 인 이름 방문 주 소 는 본 컴퓨터 * * 로 보 냅 니 다.$ ./certbot-auto certonly --standalone --email [email protected] -d example.com -d www.example.com -d other.example.com
--standalone
신청 방식 유형 --email [email protected] -d example.com
매개 변수 참조 Webroot
방식 으로 검증 에 문제 가 없 으 면 잠시 후 페이지 에 프로 토 콜 대화 상자 가 나타 나 Agree 를 클릭 하면 됩 니 다.$ ./certbot-auto certonly --manual --email [email protected] -d example.com -d www.example.com -d other.example.com
--standalone
신청 방식 유형 --email [email protected]
매개 변수 참조 Webroot
방식 -d example.com
은 신청 해 야 할 도 메 인 이름 으로 이 도 메 인 이름 이 있 는 기계 에 대한 읽 기와 쓰기 권한 이 있어 야 실행 되면 도 메 인 이름 이 있 는 서버 의 프로젝트 와 디 렉 터 리 에 문 서 를 만 들 고 파일 내용 을 지정 하도록 요구 합 니 다.Make sure your web server displays the following content at
http://example.com/.well-known/acme-challenge/VE_oSzihad5ZNYPnE_OLT2aQ-BdT_M3z5ITj53wQ-Oc before continuing:
VE_oSzihad5ZNYPnE_OLT2aQ-BdT_M3z5ITj53wQ-Oc.JhmxNt13DUzzmC4_7VfnfWh1gmePbExxQygAMf9KTSo
#
# /tmp/certbot/public_html
mkdir -p /tmp/certbot/public_html/.well-known/acme-challenge
#
cd /tmp/certbot/public_html
#
printf "%s" VE_oSzihad5ZNYPnE_OLT2aQ-BdT_M3z5ITj53wQ-Oc.JhmxNt13DUzzmC4_7VfnfWh1gmePbExxQygAMf9KTSo > .well-known/acme-challenge/VE_oSzihad5ZNYPnE_OLT2aQ-BdT_M3z5ITj53wQ-Oc
#
Press Enter to Continue
조작 완료 후 리 턴 버튼 을 누 르 면 됩 니 다.
신청 작업 이 성공 하면 인터페이스 에서 인증서 의 저장 경로 와 인증서 의 만 료 시간 (* * 90 일 * *) 을 출력 합 니 다.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert
will expire on 2017-08-17. 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"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
인증서 생 성 중
/etc/letsencrypt
폴 더 를 만 듭 니 다. 인증서 파일 은 기본적으로 /etc/letsencrypt/live/example.com
폴 더 에 저 장 됩 니 다. 이 중 example.com
첫 번 째 도 메 인 이름 에서 추출 한 것 은 example.com
폴 더 에 4 개의 파일 cert.pem chain.pem fullchain.pem privkey.pem
을 포함 합 니 다.cert.pem
과 chain.pem
을 합병 하여 openssl dhparam -out /etc/letsencrypt/live/dhparams.pem 2048
nginx TSL 설정
우선 http 프로 토 콜 301 을 https 프로 토 콜 로 재 설정 합 니 다.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
https 관련 설정
server {
listen 443 ssl;
server_name example.com www.example.com;
#
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
#
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Diffie-Hellman
ssl_dhparam /etc/letsencrypt/live/dhparams.pem;
#
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
# , SSLv3 TLS
ssl_prefer_server_ciphers on;
# ssl SSLv2,SSLv3,TLSv1,TLSv1.1,TLSv1.2
# ie6 SSLv2,SSLv3 ,
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# TLS session 1m 4000 session
ssl_session_cache shared:SSL:50m;
# session
ssl_session_timeout 1d;
# https://imququ.com/post/optimize-tls-handshake.html
# 1.5.9
ssl_session_tickets off;
# TLS , TLS , 。OCSP stapling , OCSP(Online Certificate Status Protocol) , 。 OCSP ( ), https://imququ.com/post/my-nginx-conf-for-wpo.html
# 1.3.7
ssl_stapling on;
ssl_stapling_verify on;
# +
ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
# HSTS , max-age , HTTPS 。 HTTP , HTTP , HTTPS https://imququ.com/post/sth-about-switch-to-https.html
add_header Strict-Transport-Security max-age=60;
# http
}
이상 설정 이 완료 되면 nginx 를 다시 시작 하면 https 전환 을 완료 할 수 있 습 니 다.
다음 명령 을 사용 하면 * * 연장 * * 을 진행 할 수 있 으 며, 연장 성공 후 서버 가 필요 합 니 다
$ ./certbot-auto renew
이 명령 은 만 료 될 인증서 만 업데이트 할 수 있 습 니 다. 강제 업 데 이 트 를 원한 다 면
--force-renewal
인 자 를 추가 할 수 있 습 니 다.Qualys SSL labs 가 제공 하 는 SSL Server Test 서 비 스 를 통 해 사이트 의 현재 설정 과 테스트 사이트 의 안전 평 점 을 볼 수 있 습 니 다. 또한 이 사 이 트 는 유명 사이트 의 테스트 결 과 를 캐 시 했 습 니 다. 아래 링크 를 클릭 하면 볼 수 있 습 니 다.
기타 설명
한 IP 에 여러 개의 인증 서 를 설정 해 야 한다 면 HTTPS 사용 에 대한 경험 치 공유 (2) * * SNI 확장 * * 부분 문 중
ssl_ciphers
을 보십시오.설정 은 Mozilla SSL Configuration Generator 의 일반적인 설정 을 참고 하여 Mozilla 에 오 는 동시에 TSL 설정 설명 문서 Security / server Side TLS 를 제공 합 니 다. 또한 ciperli 가 제공 하 는 TSL 설정 모델 은 ssl_ciphers
설정 을 제외 하고 모두 Jerry Qu 의 본 블 로 거 Nginx 설정 의 전체 편 을 참고 하여 다른 설정 의 상세 한 내용 과 역할 을 참고 할 수 있 습 니 다.원 리 는 그의 블 로그 에서 알 수 있 는 글 을 검색 하 는 동시에 다음 과 같은 블 로그 도 참고 할 수 있다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.