1. 生成私钥和证书签名请求 (CSR)

    openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
  2. 从证书颁发机构 (CA) 获取证书

    • 将 CSR 文件提交给 CA,获取 SSL 证书文件(通常为 .crt.pem 文件)。

  3. 配置 Nginx
    打开 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default),修改或添加以下内容:

    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;
    
        location / {
            root /var/www/html;
            index index.html;
        }
    }
  4. 将 HTTP 重定向到 HTTPS
    在 Nginx 配置文件中添加以下内容:

    server {
        listen 80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
  5. 测试 Nginx 配置

    nginx -t
  6. 重启 Nginx

    systemctl restart nginx

案例:
假设域名为 example.com,证书文件为 /etc/nginx/ssl/example.com.crt,私钥文件为 /etc/nginx/ssl/example.com.key

  1. 生成 CSR:

    openssl req -new -newkey rsa:2048 -nodes -keyout /etc/nginx/ssl/example.com.key -out /etc/nginx/ssl/example.com.csr
  2. 从 CA 获取证书文件 example.com.crt

  3. 配置 Nginx:

    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;
    
        location / {
            root /var/www/html;
            index index.html;
        }
    }
    
    server {
        listen 80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
  4. 测试并重启 Nginx:

    nginx -t
    systemctl restart nginx

本篇文章内容来源于:nginx ssl证书配置步骤详细说明以及案例