Nginx手动配置SSL详细说明及案例

1. 获取SSL证书

首先需要从证书颁发机构(CA)获取SSL证书,通常包括:

  • 证书文件(如 your_domain.crt

  • 私钥文件(如 your_domain.key

  • 可能还包括中间证书文件(如 intermediate.crt

2. 上传证书文件

将证书文件和私钥文件上传到Nginx服务器,通常放在 /etc/nginx/ssl/ 目录下。

3. 配置Nginx

编辑Nginx配置文件,通常在 /etc/nginx/nginx.conf/etc/nginx/sites-available/default

4. 修改配置文件

server 块中添加或修改以下内容:

server {
    listen 443 ssl;
    server_name your_domain.com;

    ssl_certificate /etc/nginx/ssl/your_domain.crt;
    ssl_certificate_key /etc/nginx/ssl/your_domain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

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

5. 解释配置

  • listen 443 ssl;:监听443端口并启用SSL。

  • ssl_certificate:指定证书文件路径。

  • ssl_certificate_key:指定私钥文件路径。

  • ssl_protocols:指定使用的SSL/TLS协议版本。

  • ssl_ciphers:指定加密套件。

  • ssl_prefer_server_ciphers:优先使用服务器端的加密套件。

  • return 301 https://$host$request_uri;:将HTTP请求重定向到HTTPS。

6. 重启Nginx

保存配置文件后,重启Nginx以应用更改:

sudo systemctl restart nginx

7. 验证配置

访问 https://your_domain.com,确认SSL证书已正确配置。

案例

假设域名为 example.com,证书文件为 example.com.crt,私钥文件为 example.com.key,配置如下:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

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

重启Nginx后,访问 https://example.com 验证配置。

本篇文章内容来源于:nginx手动配置ssl详细说明以及案例