>운영 및 유지보수 >엔진스 >Nginx의 HTTPS 구성 및 인증서 관리 구현 세부 정보 분석

Nginx의 HTTPS 구성 및 인증서 관리 구현 세부 정보 분석

王林
王林원래의
2023-08-05 08:57:231042검색

Nginx HTTPS 구성 및 인증서 관리 구현 세부 사항 분석

네트워크 정보 보안 분야에서 HTTPS 프로토콜은 인터넷상의 데이터 전송을 위한 암호화, 신원 인증 및 무결성 보호를 제공하는 매우 중요한 보안 통신 기술입니다. Nginx는 HTTP 프로토콜뿐만 아니라 HTTPS 프로토콜도 지원하는 고성능 웹 서버이자 역방향 프록시 서버입니다. 이 기사에서는 Nginx의 HTTPS 구성 및 인증서 관리의 구현 세부 사항을 분석하고 해당 코드 예제를 제공합니다.

  1. HTTPS 인증서 생성
    HTTPS 프로토콜을 사용하려면 먼저 공개 키와 개인 키 쌍, 그리고 SSL 인증서를 생성해야 합니다. 이러한 파일은 openssl 도구를 사용하여 생성할 수 있습니다. 다음은 예시입니다.
$ openssl genrsa -out private.key 2048
$ openssl req -new -key private.key -out csr.csr
$ openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt

위 코드에서 private.key는 생성된 개인 키 파일이고, csr.csr는 인증서 요청 파일이며, certificate .crt는 최종 생성된 SSL 인증서입니다. private.key是生成的私钥文件,csr.csr是证书请求文件,certificate.crt是最终生成的SSL证书。

  1. Nginx配置HTTPS
    在Nginx的配置文件中,可以通过添加以下几行配置来启用HTTPS:
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
}

上述代码中的listen指令定义了监听的端口和协议,ssl_certificate指令定义了SSL证书的路径,ssl_certificate_key指令定义了私钥文件的路径。

  1. 证书链和中间证书
    在一些情况下,SSL证书可能由多个证书组成,其中一个是SSL证书本身,其余的是中间证书。在Nginx的配置文件中,可以通过以下方式配置中间证书:
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    ssl_trusted_certificate /path/to/intermediate.crt;
}

上述代码中的ssl_trusted_certificate指令定义了中间证书的路径。当浏览器与Nginx建立连接时,Nginx会将SSL证书链一同传输给浏览器,以供验证。

  1. 强制使用HTTPS
    在许多情况下,网站希望所有的HTTP请求都自动重定向到HTTPS。可以通过以下方式配置Nginx达到此目的:
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

上述代码中的return

    Nginx 구성 HTTPS
      Nginx 구성 파일에서 다음 구성 줄을 추가하여 HTTPS를 활성화할 수 있습니다. 위 코드의

    1. $ openssl x509 -in certificate.crt -text -noout
    2. listen 지시문 정의 수신 포트와 프로토콜이 지정되고 ssl_certificate 지시문은 SSL 인증서의 경로를 정의하며 ssl_certificate_key 지시문은 개인 키 파일의 경로를 정의합니다.
      인증서 체인 및 중간 인증서
    • 경우에 따라 SSL 인증서는 여러 인증서로 구성될 수 있으며, 그 중 하나는 SSL 인증서 자체이고 나머지는 중간 인증서입니다. Nginx 구성 파일에서 중간 인증서는 다음과 같은 방식으로 구성될 수 있습니다.
    $ openssl req -in csr.csr -text -noout
      위 코드의 ssl_trusted_certificate 지시문은 중간 인증서의 경로를 정의합니다. 브라우저가 Nginx와의 연결을 설정하면 Nginx는 확인을 위해 SSL 인증서 체인을 브라우저에 전송합니다.
      1. Force HTTPS
      많은 경우 웹사이트에서는 모든 HTTP 요청이 자동으로 HTTPS로 리디렉션되기를 원합니다. Nginx는 다음과 같이 구성할 수 있습니다.
      • $ openssl rsa -in private.key -check
        $ openssl x509 -noout -modulus -in certificate.crt | openssl md5
        $ openssl rsa -noout -modulus -in private.key | openssl md5
      • 위 코드의 return 지시문은 모든 HTTP 요청을 HTTPS로 리디렉션합니다.
      • 인증서 관리
      • 실제 적용에서는 SSL 인증서가 만료되거나 업데이트가 필요할 수 있으며, 그에 따른 인증서 관리가 필요합니다. 다음은 몇 가지 일반적인 인증서 관리 작업 및 해당 샘플 코드입니다.

      SSL 인증서 정보 보기:

      $ openssl verify -CAfile intermediate.crt certificate.crt
      🎜🎜인증서 요청 정보 보기: 🎜🎜rrreee🎜🎜SSL 인증서와 개인 키가 일치하는지 확인: 🎜🎜rrreee 🎜🎜인증서 체인의 유효성 확인: 🎜🎜rrreee🎜위의 인증서 관리 작업을 통해 SSL 인증서를 보고 확인하고 업데이트할 수 있습니다. 🎜🎜요약: 🎜이 글에서는 Nginx의 HTTPS 구성 및 인증서 관리 구현 세부 사항을 분석하고 해당 코드 예제를 제공합니다. 위의 구성 및 인증서 관리 작업을 통해 Nginx에서 안전한 HTTPS 통신을 구현하고 SSL 인증서를 효과적으로 관리할 수 있습니다. 🎜

      위 내용은 Nginx의 HTTPS 구성 및 인증서 관리 구현 세부 정보 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

      성명:
      본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.