NGINX SSL 인증서 설정 + HTTPS 사이트 구축 강좌

11242 단어 IT기술.서버
1. HTTPS 는 무엇 입 니까?
위 키 백과 의 설명 에 따 르 면:
         (  :HTTPS,  :Hypertext Transfer Protocol Secure)         SSL/TLS   ,                    。HTTPS                               。HTTPS    RFC 2660             (S-HTTP)  。

HTTPS 는 현재 프라이버시 와 안전 을 중시 하 는 모든 사이트 의 최 우선 선택 이다. 기술 이 계속 발전 함 에 따라 HTTPS 사 이 트 는 더 이상 대형 사이트 의 특허 가 아니 라 모든 일반 개인 역장 과 블 로 그 는 스스로 안전 한 암호 화 사 이 트 를 구축 할 수 있다.
만약 한 사이트 가 암호 화 되 지 않 았 다 면, 당신 의 모든 계 정 비밀 번 호 는 명문 으로 전 송 됩 니 다.프라이버시 와 금융 문제 가 걸 리 면 암호 화 되 지 않 은 전송 이 얼마나 무 서운 지 짐작 할 수 있다.
본 블 로그 의 독자 들 이 모두 전문가 에 가 까 운 것 을 감안 하여 우 리 는 더 이상 긴 말 하지 않 고 바로 본론 으로 들 어가 자.
2. OpenSSL 을 사용 하여 SSL Key 와 CSR 생 성
브 라 우 저 나 시스템 이 신뢰 하 는 CA 만 이 모든 방문 자 들 이 인증서 오류 알림 이 아 닌 암호 화 사 이 트 를 원활 하 게 방문 할 수 있 기 때 문 입 니 다.그래서 우 리 는 인증서 에 서명 하 는 절 차 를 뛰 어 넘 고 제3자 가 신뢰 할 수 있 는 SSL 인증서 에 서명 합 시다.
OpenSSL 은 Linux, OS X 등 일반적인 시스템 에서 기본적으로 설치 되 어 있 습 니 다. 일부 안전 문제 로 인해 현재 의 제3자 SSL 인증서 발급 기 구 는 최소 2048 비트 의 RSA 암호 화 된 비밀 키 를 요구 합 니 다.
또한 일반적인 SSL 인증서 인증 은 두 가지 형식 으로 나 뉘 는데 하 나 는 DV (Domain Validated) 이 고 다른 하 나 는 OV (Organization Validated) 입 니 다. 전 자 는 도 메 인 이름 만 검증 하고 후 자 는 조직 이나 회 사 를 검증 해 야 합 니 다. 안전성 에 있어 후자 가 좋 을 것 입 니 다.
DV 든 OV 로 비밀 키 를 만 들 든 기본 정 보 를 작성 해 야 합 니 다. 여기 서 우 리 는 다음 과 같이 가정 합 니 다.
도 메 인 이름 은 Common Name 이 라 고도 합 니 다. 특별한 인증서 가 도 메 인 이름 이 아 닙 니 다. example.com조직 또는 회사 이름 (Organization): Example, Inc.부서 (Department): 안 써 도 돼 요. 여기 저희 가 쓸 게 요.  Web Security
도시 (도시): Beijing성 (State / Province): Beijing국가 (국가): CN암호 화 강도: 2048 비트, 기계 성능 이 강하 면 4096 비트 를 선택 할 수 있 습 니 다.
이상 의 정보 에 따라 OpenSSL 을 사용 하여 key 와 csr 를 생 성 하 는 명령 은 다음 과 같 습 니 다.
openssl req -new -newkey rsa:2048 -sha256 -nodes -out example_com.csr -keyout example_com.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Example Inc./OU=Web Security/CN=example.com"  

PS: 범 도 메 인 이름 인증서 라면 작성 해 야 합 니 다.  *.example.com
시스템 의 어느 곳 에서 든 이 명령 을 실행 할 수 있 습 니 다. 현재 디 렉 터 리 에서 자동 으로 생 성 됩 니 다.  example_com.csr  화해시키다  example_com.key 이 두 파일
이제 확인 해 보 세 요.  example_com.csr 이렇게 긴 문자열 의 문 자 를 얻 었 습 니 다.
-----BEGIN CERTIFICATE REQUEST-----
MIICujCCAaICAQAwdTELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB0JlaWppbmcxEDAO  
BgNVBAcTB0JlaWppbmcxFTATBgNVBAoTDEV4YW1wbGUgSW5jLjEVMBMGA1UECxMM  
V2ViIFNlY3VyaXR5MRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcN  
AQEBBQADggEPADCCAQoCggEBAPME+nvVCdGN9VWn+vp7JkMoOdpOurYMPvclIbsI  
iD7mGN982Ocl22O9wCV/4tL6DpTcXfNX+eWd7CNEKT4i+JYGqllqP3/CojhkemiY  
SF3jwncvP6VoST/HsZeMyNB71XwYnxFCGqSyE3QjxmQ9ae38H2LIpCllfd1l7iVp  
AX4i2+HvGTHFzb0XnmMLzq4HyVuEIMoYwiZX8hq+kwEAhKpBdfawkOcIRkbOlFew  
SEjLyHY+nruXutmQx1d7lzZCxut5Sm5At9al0bf5FOaaJylTEwNEpFkP3L29GtoU  
qg1t9Q8WufIfK9vXqQqwg8J1muK7kksnbYcoPnNgPx36kZsCAwEAAaAAMA0GCSqG  
SIb3DQEBBQUAA4IBAQCHgIuhpcgrsNwDuW6731/DeVwq2x3ZRqRBuj9/M8oONQen  
1QIacBifEMr+Ma+C+wIpt3bHvtXEF8cCAJAR9sQ4Svy7M0w25DwrwaWIjxcf/J8U  
audL/029CkAuewFCdBILTRAAeDqxsAsUyiBIGTIT+uqi+EpGG4OlyKK/MF13FxDj  
/oKyrSJDtp1Xr9R7iqGCs/Zl5qWmDaLN7/qxBK6vX2R/HLhOK0aKi1ZQ4cZeP7Mr
8EzjDIAko87Nb/aIsFyKrt6Ze3jOF0/vnnpw7pMvhq+folWdTVXddjd9Dpr2x1nc  
y5hnop4k6kVRXDjQ4OTduQq4P+SzU4hb41GIQEz4  
-----END CERTIFICATE REQUEST-----

이 CSR 파일 은 SSL 인증 기관 에 제출 해 야 하 는 것 입 니 다. 도 메 인 이나 조직 이 인증 을 통과 하면 인증 기관 에서 발급 합 니 다.  example_com.crt
그리고  example_com.key  Nginx 설정 과  example_com.crt  협조 적 으로 사용 할 경우 잘 보관 해 야 하 며, 절대 제3자 에 게 누설 하지 마 세 요.
3. Nginx 는 HTTPS 사 이 트 를 설정 하고 안전 한 설정 을 추가 합 니 다.
앞에서 언급 했 듯 이 CSR 파일 을 제3자 SSL 인증 기구 에 제출 해 야 합 니 다. 인증 을 통과 하면 그들 은 당신 에 게 CRT 파일 을 발급 할 것 입 니 다. 우 리 는 이름 을 지 었 습 니 다.  example_com.crt
동시에 통일 을 위해 서 당신 은 이 세 개의 파일 을 모두 이동 할 수 있 습 니 다.  /etc/ssl/private/  목록
그리고 Nginx 프로필 을 수정 할 수 있 습 니 다.
server {  
    listen 80;
    listen [::]:80 ssl ipv6only=on; 
    listen 443 ssl;
    listen [::]:443 ssl ipv6only=on;
    server_name example.com;

    ssl on;
    ssl_certificate /etc/ssl/private/example_com.crt;
    ssl_certificate_key /etc/ssl/private/example_com.key;
}

설정 파일 이 문제 없 음 을 확인 한 후 Nginx 를 다시 읽 으 면 됩 니 다.nginx -t && nginx -s reload
그러나 이렇게 하 는 것 은 안전 하지 않 습 니 다. 기본 값 은 SHA - 1 형식 입 니 다. 현재 주류 방안 은 모두 SHA - 1 을 피해 야 합 니 다. 더욱 강 한 안전성 을 확보 하기 위해 디 피 헤 르 만 키 교환 을 할 수 있 습 니 다.
먼저  /etc/ssl/certs  디 렉 터 리 및 생 성  dhparam.pem
cd /etc/ssl/certs  
openssl dhparam -out dhparam.pem 2048 #             ,    4096      

생 성 완료 후 Nginx SSL 설정 뒤에 추가
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
        keepalive_timeout 70;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m; 

또한, 전체 사이트 HTTPS 이 고 HTTP 를 고려 하지 않 는 다 면 HSTS 가 알려 준 브 라 우 저 본 사이트 의 전체 사이트 암호 화 를 추가 하고 HTTPS 로 강제로 접근 할 수 있 습 니 다.
        add_header Strict-Transport-Security max-age=63072000;
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;

또한 Nginx 설정 을 따로 열 어 HTTP 접근 요청 을 모두 301 로 HTTPS 로 전환 할 수 있 습 니 다.
server {  
        listen 80;
        listen [::]:80 ssl ipv6only=on;
        server_name     example.com;
        return 301 https://example.com$request_uri;
}

4. 신뢰 할 수 있 는 제3자 SSL 발급 기구
얼마 전 한 NIC 기관 에서 Google 도 메 인 이름 에 대한 인증서 발급 스캔들 이 불 거 졌 기 때문에 믿 을 만 한 제3자 SSL 발급 기관 을 선택 하 는 것 이 얼마나 중요 한 지 알 수 있다.
현재 일반 시장 에서 중 소 역장 과 기업 을 대상 으로 하 는 SSL 인증서 발급 기 구 는 다음 과 같다.
StartSSL
Comodo / 하위 브랜드 Positive SSL
GlobalSign / 하위 브랜드 AlphaSSL
GeoTrust / 하위 브랜드 RapidSSL
그 중에서 Postivie SSL, AlphaSSL, RapidSSL 등 은 모두 하위 브랜드 이 고 보통 3 급 4 급 인증서 이기 때문에 CA 인증서 체인 을 CRT 파일 에 추가 해 야 합 니 다.
Comodo Positive SSL 의 경우 도 메 인 이름 이  example.com
그렇다면 직렬 연결 명령 은?
cat example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > example_com.signed.crt  

Nginx 설정 에 example 사용 하기com. signed. crt 하면 됩 니 다.
일반적인 AplhaSSL 범 도 메 인 인증서 라면 CA 인증서 체인 을 보 내지 않 습 니 다. CRT 파일 뒤에 AlphaSSL 의 CA 인증서 체인 을 추가 해 야 합 니 다.
AlphaSSL Intermediate CA
5. 기업 에 대한 EV SSL
EV SSL 은 Extended Validation 의 약칭 으로 기업 사이트 에 대한 안전 보호 와 엄격 한 인증 을 더욱 중시한다.
가장 뚜렷 한 차이 점 은 보통 EV SSL 에 녹색 줄 이 표시 되 는데 예 를 들 어 본 사이트 의 SSL 인증 서 는 EV SSL 입 니 다.
만약 귀사 가 전문 적 인 EV SSL 을 얻 고 싶다 면 언제든지 저희 info at cat dot net 에 연락 하 십시오.
6. 본 고 는 문헌 을 참고 한다.
Apache + WordPress + SSL 완전 가이드
OpenSSL CSR Creation
NGINX - PhoenixWiki
다음으로 이동:https://s.how/nginx-ssl/

좋은 웹페이지 즐겨찾기