전체 사이트 HTTPS 업그레이드 시리즈 (3) nginx 설정 전체 사이트 HTTPS
이전 편 에 서 는 HTTPS 의 SSL 인증서 와 acme. sh 를 통 해 SSL 인증 서 를 생 성하 고 자동 으로 업데이트 하 는 방법 을 소개 했다.이 편 은 nginx 설정 을 통 해 전체 사이트 https 와 밟 기 쉬 운 구 덩이 를 설정 하 는 방법 을 소개 합 니 다.
환경.
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) 프로젝트 코드 업그레이드 개조
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.