Nginx配置SSL证书详细步骤

作者:快去debug2024.01.29 22:53浏览量:15

简介:本文将详细介绍如何在Nginx上配置SSL证书,以确保网站的安全传输。我们将涵盖证书的获取、安装和Nginx配置的步骤,让您轻松掌握这一重要技术。

在Nginx上配置SSL证书可以确保网站的安全传输。下面将详细介绍配置SSL证书的步骤。
一、获取SSL证书
SSL证书可以通过多种方式获取,包括购买商业证书或使用免费证书。本文以免费证书为例进行说明。

  1. 注册并登录freessl。
  2. 输入需要申请证书的域名,例如:nginx.nnlsde.xyz。
  3. 点击“创建免费的SSL证书”,进入ACME配置步骤。
  4. 进行DCV配置,以证明对域名的完整控制权。这需要在域名提供商提供的域名管理界面中进行配置。
  5. 添加一条记录,并按照给出的主机记录、记录类型、记录值等进行配置。配置完成后点击检测,通过后即可进入下一步。
  6. 在服务器上安装ACME脚本。可以通过运行以下命令实现:curl https://get.acme.sh | sh -s email=your_email@example.com
  7. 回到freessl,运行给出的ACME部署指令。脚本位于.acme.sh文件夹下,可以通过进入到该文件夹并执行./acme.sh来运行脚本。
  8. 部署完成后,即可得到证书信息的存放位置。
  9. 将cert和cert key两个文件单独拿出来,并放在/etc/nginx/下。可以通过以下命令实现:cp .acme.sh/nginx.nnlsde.xyz_ecc/nginx.nnlsde.xyz.cer /etc/nginx/和cp .acme.sh/nginx.nnlsde.xyz_ecc/nginx.nnlsde.xyz.key /etc/nginx/
    二、Nginx配置
    在Nginx上配置SSL证书相对简单。以下是一个简单的Nginx配置示例,用于启用HTTPS协议和监听443端口:
    http {
    include mime.types;
    }
    server {
    listen 443 ssl;
    server_name nginx.nnlsde.xyz;
    ssl_certificate nginx.nnlsde.xyz.cer;
    ssl_certificate_key nginx.nnlsde.xyz.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    location / {
    root /usr/share/nginx/html/site;
    index index.html;
    }
    }
    server {
    listen 80;
    server_name nginx.nnlsde.xyz;
    rewrite ^/(.*)$ https://nginx.nnlsde.xyz:443/$1 permanent;
    }
    events {
    }
    在上述配置中,我们首先定义了一个http块,用于包含一些通用的MIME类型定义。然后,我们定义了一个server块,用于配置Nginx服务器的基本设置。在server块中,我们指定了监听的端口号为443(HTTPS协议默认端口),启用了ssl选项来启用SSL证书,并设置了服务器名称(例如:nginx.nnlsde.xyz)。接下来,我们指定了ssl_certificate和ssl_certificate_key指令来引用SSL证书和私钥文件的位置。然后,我们设置了ssl_session_cache和ssl_session_timeout指令来控制SSL会话的缓存和超时时间。通过ssl_ciphers指令,我们指定了加密套件来确保安全的数据传输。最后,我们通过location指令定义了网站的根目录和默认索引文件的位置。
    在第二个server块中,我们定义了另一个服务器节点来处理HTTP请求并将其永久重定向到HTTPS协议。通过listen指令指定了监听的端口号为80(HTTP协议默认端口),并通过rewrite指令将所有HTTP请求重定向到对应的HTTPS地址。
    events块用于指定Nginx的事件处理方式,通常保持默认设置即可。
    请注意,上述配置仅提供了一个基本的示例,实际应用中可能需要根据具体情况进行适当的调整和优化。建议在进行任何配置更改之前备份原始配置文件,并在测试环境中进行验证以确保安全性和性能达到预期要求。此外,确保按照您所使用的Nginx版本和特定需求进行适当的配置和调整。