사이트 에 ssl 인증서 추가 (https)

4577 단어 ssl
환경: centos 7, nginx
nginx 설치 ssl 모듈
nginx 설치 -- with - httpssl_module nginx 를 설치 할 때 ssl 을 사용 하 는 것 을 고려 하지 않 았 기 때문에 이 모듈 을 설치 하지 않 았 습 니 다.nginx 를 설치 할 때 기본 설치 경 로 를 사용 합 니 다. 즉, /usr/local/nginx nginx 실행 가능 한 파일 은 /usr/local/nginx/sbin/ 아래 에 있 습 니 다.현재 ssl 모듈 설치:
1. nginx 설치 파일 디 렉 터 리 에 파일 생 성, 실행:
/configure  --with-http_ssl_module 
make

2. nginx 를 교체 하려 면 먼저 nginx 서 비 스 를 닫 습 니 다 (중요 합 니 다) nginx 설치 파일 디 렉 터 리 아래 에 obbs 디 렉 터 리 를 생 성하 고 objs/nginx 를 교체 합 니 다 (둘 다 nginx 의 실행 가능 한 파일 입 니 다).nginx 서 비 스 를 다시 시작 하면 됩 니 다./usr/local/nginx/sbin/nginx
certbot 배포 ssl 인증서
1. certbot 홈 페이지 에 따 르 면https://certbot.eff.org/lets-encrypt/centosrhel7-nginx 알림, yum 소스 설치
 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2. certbot 설치
sudo yum install python2-certbot-nginx

위 에 설치 가 성공 했다 고 해서 certbot 가 사용 할 수 있 는 것 은 아 닙 니 다.명령 실행 중
certbot

알림 권한 만 부족 하면 매개 변수 가 정확 하지 않 아 사용 할 수 있 음 을 표시 합 니 다.의존 이 부족 하면 잘못 보고 하고 잘못된 설치 에 의존 할 수 있 습 니 다.일반적인 경우 python 패키지 버 전이 너무 낮 습 니 다.마 운 트 해제.
3. 인증서 생 성 조건: nginx 에서 도 메 인 이름 을 설정 한 서비스 입 니 다. 예 를 들 어
server {
   listen   80;
   server_name example.com;
   location  /  {
     root /home/to/web/dist/;
     index index.html;
   }
}

nginx 디 렉 터 리 /usr/local/nginx/sbin/nginx -s reload 인증 서 를 추가 할 도 메 인 이름 /usr/local/nginx생 성 명령 실행:
sudo certbot certonly --standalone --nginx --nginx-server-root=/usr/local/nginx/conf -d api.example.online

구체 적 인 명령 설명 은 certbot 문서 소개 참조.인자 nginx - server - root 에 대해 설명 합 니 다. nginx - server - root 는 nginx 서 비 스 를 지정 하 는 루트 디 렉 터 리 (Nginx server root directory) 입 니 다.certbot 문서 의 사용 예제 에 서 는 이 인 자 를 추가 하지 않 고 기본 경로 (/ etc / nginx) 를 사용 합 니 다.현재 nginx 의 설치 경 로 는 example.com 인 경우 입 니 다.문서 에서 처럼 실행 하면 /usr/local/nginx 오류 가 발생 하여 nginx 를 찾 을 수 없습니다.인터넷 에서 보 이 는 이 오 류 를 해결 하 는 방법 은 nginx 서 비 스 를 소프트 연결 이나 nginx 를 통 해 루트 디 렉 터 리 를 / etc / nginx 아래 에 두 는 것 입 니 다.이런 방법 은 비교적 번 거 로 우 므 로 직접 파라미터 nginx - server - root 를 추가 하여 지정 하면 된다.
위 명령 에 standalone 을 추가 하지 않 고 세 가지 모드 중 하 나 를 선택 하 라 고 알려 줍 니 다.도 메 인 이름 을 추가 하지 않 으 면 nginx 에서 설정 한 도 메 인 이름 을 검사 하고 어떤 도 메 인 이름 으로 ssl 을 생 성 할 지 선택 합 니 다.잠깐 만.
4. 상기 명령 에서 생 성 된 인증서 의 저장 주 소 를 지정 하지 않 았 기 때 문 입 니 다.묵인
/etc/letsencrypt/live/

디 렉 터 리 아래 에 도 메 인 이름 으로 명령 하 는 항목 이 있 습 니 다. 예 를 들 어 이 디 렉 터 리 아래 에 다음 과 같은 파일 이 있 습 니 다.
cert.pem  chain.pem  fullchain.pem  privkey.pem  README

5. nginx 는 해당 도 메 인 이름 의 server 에 다음 과 같은 설정 을 추가 합 니 다.
 ssl_certificate XXX/fullchain.pem; #    fullchain.pem     
ssl_certificate_key XXX/privkey.pem; #    privkey.pem     

로 바꾸다.
listen  443  ssl;

위의 예제 설정 server 는 다음 과 같이 변경 할 수 있 습 니 다.
server {
   listen       443    ssl;
   ssl_certificate  /etc/letsencrypt/live/example.com/fullchain.pem;
   ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;

   server_name example.com;
   location  /  {
     root /home/to/web/dist/;
     index index.html;
   }
}

nginx 설정 을 다시 불 러 옵 니 다.
/usr/local/nginx/sbin/nginx -s reload

방문 가능 sudo certbot certonly -nginx6. http 에서 https 로 이동 example.com 자동 으로 이동 listen 80; 하려 면 nginx 에 server 설정 을 추가 해 야 합 니 다. 도 메 인 이름 과 같 습 니 다.
server {
   listen      80;
   server_name example.com;
   rewrite ^(.*)$ https://$host$1 permanent;
}

물론 이런 점프 방법 은 이 뿐만 아니 라 인터넷 에서 다른 설정 방법 도 볼 수 있다.
7. 인증 서 는 인증서 의 유효기간 이 90 일 밖 에 되 지 않 기 때문에 매주 한 번 검사 하도록 설정 합 니 다 (유효기간 이 30 일 이하 여야 업데이트)
0 22    * * 6      certbot renew --dry-run  && /usr/local/nginx/sbin/nginx -s reload  

인증서 가 만 료 될 때 자동 으로 업 데 이 트 됩 니 다.
후기: 인터넷 에 소 개 된 무료 ssl 증 서 는 이미 많은 비용 을 받 았 습 니 다.
오류 기록: 1 - 실행: https://example.com 오류: 너무 많은 플래그 설정 configurator / installers / authenticators' nginx '- >' webroot '해결:
sudo certbot certonly --nginx --nginx-server-root=/usr/local/nginx/conf 

그리고 알림 에 따라 도 메 인 이름 을 선택 하여 인증 서 를 생 성 합 니 다.참고 글:https://certbot.eff.org/docs/using.html#certbot-commands
https://blog.csdn.net/u014801157/article/details/80106494
https://www.jianshu.com/p/fb3733cd0d3b

좋은 웹페이지 즐겨찾기