>운영 및 유지보수 >엔진스 >Nginx HTTPS 구성을 구현하는 방법

Nginx HTTPS 구성을 구현하는 방법

WBOY
WBOY원래의
2023-11-08 09:23:121461검색

Nginx HTTPS 구성을 구현하는 방법

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

머리말

인터넷이 발전하고 보안 인식이 향상됨에 따라 점점 더 많은 웹 사이트가 개인 정보 보호 및 보안을 보호하기 위해 HTTPS 프로토콜을 활성화하기 시작했습니다. 사용자 수. Nginx는 고성능 오픈소스 웹 서버로서 HTTP뿐만 아니라 HTTPS도 구성할 수 있습니다. 이 문서에서는 Nginx HTTPS 구성을 구현하는 방법을 소개하고 참조 및 사용을 위한 특정 코드 예제를 첨부합니다.

1. 인증서 및 개인 키 생성

HTTPS 프로토콜을 활성화하려면 먼저 SSL 인증서와 개인 키를 생성해야 합니다. SSL 인증서는 서버의 신원을 확인하는 데 사용되며, 개인 키는 전송된 데이터를 암호화 및 해독하는 데 사용됩니다. 다양한 인증 기관(CA)에서 서명한 인증서를 사용하거나 자체 서명된 인증서를 사용할 수 있습니다.

자체 서명 인증서를 생성하는 방법은 다음과 같습니다.

  1. 터미널을 열고 명령줄에 다음 명령을 입력하세요.
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout private.key -out certificate.crt -subj "/CN=www.example.com"

여기서 private.key는 이름입니다. 개인 키 파일의 certificate .crt는 인증서 파일 이름이고, www.example.com은 서버의 도메인 이름이며, 실제 상황. private.key是私钥文件名,certificate.crt是证书文件名,www.example.com是服务器的域名,可以根据实际情况进行修改。

  1. 输入上述命令后,将被要求输入一些证书相关的信息,包括国家、州、城市、组织等。按照提示输入即可。
  2. 输入完毕后,会在当前目录下生成私钥文件private.key和证书文件certificate.crt

二、编辑Nginx配置文件

生成证书和私钥后,需要编辑Nginx的配置文件,启用HTTPS协议。以下是一个简单的Nginx配置示例:

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate /path/to/certificate.crt;  # 证书文件路径
    ssl_certificate_key /path/to/private.key;   # 私钥文件路径

    location / {
        # 其他配置...
    }
}

其中,listen 443 ssl;表示使用HTTPS协议,监听443端口;server_name www.example.com;指定服务器的域名;ssl_certificatessl_certificate_key分别指定证书和私钥的文件路径。

三、重启Nginx服务

配置文件编辑完成后,需要重启Nginx服务,使配置生效。在终端中输入以下命令:

sudo service nginx restart

输入密码后,Nginx服务将会重启。

四、配置HTTP跳转HTTPS

如果要将所有HTTP请求都跳转到HTTPS,可以在配置文件中添加以下代码:

server {
    listen 80;
    server_name www.example.com;

    return 301 https://$server_name$request_uri;
}

其中,listen 80;表示监听80端口(即HTTP协议);return 301 https://$server_name$request_uri;表示将所有请求跳转到对应的HTTPS地址。

五、配置强制HTTPS访问

如果要强制所有请求都通过HTTPS协议进行访问,可以在Nginx配置文件中添加以下代码:

server {
    listen 80;
    server_name www.example.com;

    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    # 其他配置...
}

配置中的第一个server块和第二个server块分别监听80端口和443端口,分别处理HTTP和HTTPS请求。配置中的return 301 https://$server_name$request_uri;

    위 명령을 입력하면 국가, 주, 도시, 기관 등 인증서 관련 정보를 입력하라는 메시지가 표시됩니다. 안내에 따라 입력하시면 됩니다.

    입력이 완료되면 현재 디렉터리에 개인키 파일 private.key와 인증서 파일 certificate.crt가 생성됩니다.

    🎜2. Nginx 구성 파일 편집 🎜🎜인증서와 개인 키를 생성한 후 Nginx 구성 파일을 편집하고 HTTPS 프로토콜을 활성화해야 합니다. 다음은 간단한 Nginx 구성 예입니다. 🎜rrreee🎜 그중 listen 443 ssl;은 HTTPS 프로토콜을 사용하고 포트 443에서 수신하는 것을 의미합니다. server_name www.example.com; 서버 도메인 이름을 지정합니다. ssl_certificatessl_certificate_key는 각각 인증서와 개인 키의 파일 경로를 지정합니다. 🎜🎜3. Nginx 서비스 다시 시작 🎜🎜구성 파일을 편집한 후 구성을 적용하려면 Nginx 서비스를 다시 시작해야 합니다. 터미널에 다음 명령을 입력하세요: 🎜rrreee🎜비밀번호를 입력하면 Nginx 서비스가 다시 시작됩니다. 🎜🎜4. HTTP를 HTTPS로 점프하도록 구성🎜🎜모든 HTTP 요청을 HTTPS로 점프하려면 구성 파일에 다음 코드를 추가하면 됩니다: 🎜rrreee🎜 그 중 listen 80; 80 포트 수신을 의미합니다(예: HTTP 프로토콜). return 301 https://$server_name$request_uri;는 모든 요청을 해당 HTTPS 주소로 점프하는 것을 의미합니다. 🎜🎜5. 강제 HTTPS 액세스 구성🎜🎜모든 요청이 HTTPS 프로토콜을 통해 액세스되도록 하려면 Nginx 구성 파일에 다음 코드를 추가하면 됩니다. 🎜rrreee🎜첫 번째 서버 구성의 블록과 두 번째 server 블록은 각각 포트 80과 포트 443을 수신하여 HTTP 및 HTTPS 요청을 각각 처리합니다. 구성에서 return 301 https://$server_name$request_uri;는 HTTP 요청이 해당 HTTPS 주소로 이동하도록 강제합니다. 🎜🎜결론🎜🎜위 단계를 통해 Nginx의 HTTPS 구성을 구현할 수 있으며 필요에 따라 HTTPS로 HTTP 점프를 수행할지 또는 강제로 HTTPS 액세스를 수행할지 선택할 수 있습니다. 물론 실제 애플리케이션에는 SSL 프로토콜 버전, 암호화 제품군, HSTS 등의 설정과 같은 기타 세부 구성도 포함됩니다. 이 기사가 귀하의 웹사이트를 더욱 안전하고 안정적으로 만드는 데 도움이 되기를 바랍니다. 🎜

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

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