>  기사  >  운영 및 유지보수  >  Nginx가 SSL/TLS 구성을 구현하는 방법

Nginx가 SSL/TLS 구성을 구현하는 방법

WBOY
WBOY원래의
2023-11-08 09:36:22981검색

Nginx가 SSL/TLS 구성을 구현하는 방법

Nginx가 SSL/TLS 구성을 구현하려면 특정 코드 예제가 필요합니다.

정보 보안이 점점 더 중요해지는 오늘날의 시대에 웹사이트 암호화는 사용자 개인정보와 데이터 무결성을 보호하는 중요한 수단이 되었습니다. 현재 가장 일반적으로 사용되는 암호화 프로토콜인 SSL/TLS 프로토콜은 전송 중 데이터 보안을 보장할 수 있습니다. 강력한 웹 서버인 Nginx는 SSL/TLS 구성을 통해 웹사이트의 암호화된 전송을 구현할 수도 있습니다. 이 기사에서는 Nginx가 SSL/TLS 구성을 구현하는 방법을 자세히 소개하고 특정 코드 예제를 제공합니다.

먼저 서버에 Nginx 소프트웨어를 설치한 다음 구성 파일에 해당 SSL/TLS 구성을 만들어야 합니다. 다음은 기본 Nginx SSL/TLS 구성 예입니다.

server {
    listen 443 ssl;

    server_name yourdomain.com;

    ssl_certificate /path/to/your.ssl.crt;
    ssl_certificate_key /path/to/your.ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLSv1.2:!ADH';

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    location / {
        # 其他相关配置
    }
}

위 구성에서는 먼저 listen 443 ssl; 지시문을 사용하여 Nginx가 443 포트를 수신하고 SSL을 활성화하도록 정의합니다. 그런 다음 ssl_certificatessl_certificate_key 지시문을 사용하여 각각 SSL 인증서 및 개인 키에 대한 경로를 지정합니다. 그런 다음 ssl_protocols 지시문을 사용하여 SSL/TLS 프로토콜 버전을 지정하고, ssl_ciphers 지시문을 사용하여 암호화 알고리즘의 우선순위를 지정하고, ssl_session_cachessl_session_timeoutcode> 지시문은 SSL 세션 캐싱을 구성하는 데 사용됩니다. listen 443 ssl; 指令定义Nginx监听443端口并启用SSL。然后使用 ssl_certificatessl_certificate_key 指令分别指定SSL证书和私钥的路径。接着使用 ssl_protocols 指令指定SSL/TLS协议的版本,ssl_ciphers 指令指定加密算法的优先级,ssl_session_cachessl_session_timeout 指令用于配置SSL会话缓存。

除了基本的SSL/TLS配置,我们还可以进一步配置SSL证书的优化参数、HTTPS重定向等。以下是一个完整的Nginx的SSL/TLS配置示例,包括了上述提到的优化参数和HTTPS重定向:

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /path/to/your.ssl.crt;
    ssl_certificate_key /path/to/your.ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLSv1.2:!ADH';

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 开启OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 10s;

    location / {
        # 其他相关配置
    }
}

在完整的SSL/TLS配置示例中,我们还使用了 return 301 https://$server_name$request_uri;

기본 SSL/TLS 구성 외에도 SSL 인증서, HTTPS 리디렉션 등의 최적화 매개변수를 추가로 구성할 수도 있습니다. 다음은 위에서 언급한 최적화 매개변수 및 HTTPS 리디렉션을 포함한 완전한 Nginx SSL/TLS 구성 예입니다.

rrreee

전체 SSL/TLS 구성 예에서는 return 301 https: //$server_name$request_uri도 사용합니다. ; HTTP 요청을 HTTPS로 리디렉션하고 OCSP 스테이플링에 대한 지원을 추가합니다.

위 예시의 SSL 인증서, 개인 키 경로, 도메인 이름은 실제 상황에 따라 적절하게 변경되어야 한다는 점에 유의하세요. 또한, SSL/TLS 구성 시 인증서 및 개인키 파일의 보안 보호에 주의하여 유출이나 변조를 방지해야 합니다. 🎜🎜간단히 말하면, 독자는 위의 예제 코드를 통해 Nginx에서 SSL/TLS 구성을 구현하는 방법을 이해할 수 있으며 실제 상황에 따라 해당 사용자 정의 구성을 만들어 웹 사이트 데이터의 안전한 전송을 보장할 수 있습니다. 이 글이 Nginx SSL/TLS 구성에 관심이 있는 독자들에게 도움이 되기를 바랍니다. 또한 모든 사람들이 웹사이트의 암호화 보안에 주의를 기울여 사용자 개인정보 및 데이터 보안을 보호할 수 있기를 바랍니다. 🎜

위 내용은 Nginx가 SSL/TLS 구성을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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