전체 사이트 HTTPS 업그레이드 시리즈 (3) nginx 설정 전체 사이트 HTTPS

4079 단어
머리말
이전 편 에 서 는 HTTPS 의 SSL 인증서 와 acme. sh 를 통 해 SSL 인증 서 를 생 성하 고 자동 으로 업데이트 하 는 방법 을 소개 했다.이 편 은 nginx 설정 을 통 해 전체 사이트 https 와 밟 기 쉬 운 구 덩이 를 설정 하 는 방법 을 소개 합 니 다.
환경.
  • Liux 서버, 운영 체제 centos7.2
  • nginx 1.10.1
  • acme.sh v2.8.0

  • 본 고 는 msh.com 도 메 인 네 임 인증 서 를 예 로 들 면
    1. nginx 에 ssl 모듈 설치
    nginx 가 https 를 지원 하려 면 http_ssl_module 모듈 을 설치 해 야 합 니 다.이 모듈 이 설치 되 지 않 거나 설치 에 실패 하면 nginx https 를 설정 할 때 unknown directive "ssl" 오류 가 발생 합 니 다.
    먼저 nginx 의 설치 패키지 디 렉 터 리 로 전환 한 다음 다음 명령 을 실행 합 니 다.
    #######         nginx ,         
    ./configure --with-http_ssl_module
    #######       make install         
    make
    #######     nginx                 nginx
    /usr/local/nginx/sbin/nginx -s stop
    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    ####### make           objs   
    cp objs/nginx /usr/local/nginx/sbin/nginx
    #######       nginx
    /usr/local/nginx/sbin/nginx
    

    2. nginx 인증서 저장 위 치 를 알려 줍 니 다.
    본인 이 지정 한 인증서 의 보관 위 치 는 /mycertify/ssl 입 니 다.
    nginx 설치 디 렉 터 리 의 nginx.conf 프로필 을 엽 니 다. 이기 때문에 현재 도 메 인 이름과 현재 도 메 인 이름 의 모든 인증 서 를 공유 할 수 있 습 니 다.
    
    #       
    server {
    	# https      443   
    	listen       443 ssl;
    	server_name b.msh.com  ;
    	#       
        ssl_certificate /mycertify/ssl/msh.com.cer;  
    	ssl_certificate_key /mycertify/ssl/msh.com.key;
    	
    	#    5      https   ,    nginx     websocket,     
    	#   nginx  websocket ,  75     
    	proxy_connect_timeout 7d;
    	proxy_send_timeout 7d;
    	proxy_read_timeout 7d;
    	#   nginx  websocket   
    	proxy_set_header Upgrade $http_upgrade;
    	proxy_set_header Connection "upgrade";
    
    
    	location / {
    		proxy_pass http://localhost:8585;
    	}
    }
    
    #             ,           
    
    

    3. HTTP 요청 을 HTTPS 요청 으로 강제로 이동
    웹 사 이 트 는 https 로 업그레이드 되 었 지만 클 라 이언 트 는 기 존의 http 프로 토 콜 을 통 해 방문 할 수 있 습 니 다.nginx 를 통 해 https 로 다시 설정 해 야 합 니 다.
    만약 에 방문 경로 가 http://b.msh.com 라면 재 설정 후의 실제 방문 경 로 는 https://b.msh.com 입 니 다.
    server {
    	listen       80;
    	server_name b.msh.com  www.b.msh.com ;
    	rewrite ^(.*) https://$host$1 permanent;
    	
    }
    

    3. nginx 를 다시 시작 하여 상기 설정 을 유효 하 게 합 니 다.
    /usr/local/nginx/sbin/nginx  -s reload
    

    메모: 이 단계 까지 설정 이 완료 되 지 않 았 습 니 다!!!열 명 중 아홉 명 은 이 단계 에 이 르 러 큰 성 과 를 거 두 었 다 고 생각 했 지만 눈 에 띄 지 않 았 지만 가장 중요 한 단 계 를 빠 뜨 렸 다. 또한 많은 튜 토리 얼 에서 언급 하지 않 은 것 이 바로 방화벽 443 포트 를 여 는 것 이다.
    4. 방화벽 을 443 포트 에 놓 습 니 다.
    443 포트 열기
    firewall-cmd --zone=public --add-port=443/tcp --permanent
    

    방화벽 을 다시 켜 라!!!!!!!!!
    firewall-cmd --reload
    

    이로써 브 라 우 저 에 주소 테스트 를 입력 할 수 있 게 되 었 습 니 다.
    시리즈
    전역 HTTPS 업그레이드 시리즈 (1) 업그레이드 전 과학 보급 작업
    전역 HTTPS 업그레이드 시리즈 (2) acme. sh 기반 Letsencrypt 에서 무료 범 도 메 인 이름 인증 서 를 생 성 합 니 다.
    전체 사이트 HTTPS 업그레이드 시리즈 (3) nginx 설정 전체 사이트 HTTPS
    전역 HTTPS 업그레이드 시리즈 (4) 프로젝트 코드 업그레이드 개조

    좋은 웹페이지 즐겨찾기