Nginx SSL 获取 SSL/TLS 证书(仅用于测试)

发布于:2025-09-11 ⋅ 阅读:(13) ⋅ 点赞:(0)


一、创建自签名证书(仅用于测试)

如果您只是在开发或测试环境中使用 SSL,可以生成自签名证书。请按照以下步骤生成并配置自签名证书。

  1. 生成自签名证书

生成密钥文件和证书签名请求(CSR)

mkdir -p /usr/local/nginx/ssl/private
mkdir -p /usr/local/nginx/ssl/certs


openssl genpkey -algorithm RSA -out /usr/local/nginx/ssl/private/nginx-selfsigned.key -pkeyopt rsa_keygen_bits:2048
生成一个 2048 位的 RSA 私钥文件

openssl req -new -key /usr/local/nginx/ssl/private/nginx-selfsigned.key -out /usr/local/nginx/ssl/certs/nginx-selfsigned.csr
基于已生成的私钥,创建证书签名请求文件(CSR)

其他字段说明(一般在用 openssl req -new -key ... 生成 CSR 时会问)

    Country Name (2 letter code): 国家代码(必须 2 位,例如 CN、US)

    State or Province Name: 省/州全名,例如 Beijing

    Locality Name: 城市,例如 Beijing

    Organization Name: 公司或组织名,例如 MyCompany Ltd

    Organizational Unit Name: 部门名,例如 IT Department(可留空)

    Common Name (e.g. server FQDN): 你的域名,例如 example.com

    Email Address: 邮箱地址,例如 admin@example.com

系统会提示你输入一些信息,如国家、组织等。

  1. 生成自签名证书

    openssl x509 -req -days 365 -in  /usr/local/nginx/ssl/certs/nginx-selfsigned.csr -signkey  /usr/local/nginx/ssl/private/nginx-selfsigned.key -out  /usr/local/nginx/ssl/certs/nginx-selfsigned.crt
    
  2. 验证证书生成是否成功

    证书应该已经保存在 /usr/local/nginx/ssl/certs/nginx-selfsigned.crt,密钥文件保存在 /usr/local/nginx/ssl/private/nginx-selfsigned.key`。

二、配置 Nginx 启用 SSL/TLS

2.1 编辑 Nginx 配置文件

编辑 Nginx 配置文件并启用 SSL:

vim  /usr/local/nginx/conf/nginx.conf

2.2 配置 SSL 证书路径

在 Nginx 配置中添加以下内容:

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

    ssl_certificate /usr/local/nginx/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /usr/local/nginx/ssl/private/nginx-selfsigned.key;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
    ssl_prefer_server_ciphers on;

    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

解释:

  • listen 443 ssl;:告诉 Nginx 监听 HTTPS(端口 443)。
  • ssl_certificatessl_certificate_key:指定 SSL 证书和密钥的路径。
  • ssl_protocols TLSv1.2 TLSv1.3;:只启用 TLS 1.2 和 TLS 1.3,禁用 SSL 和 TLS 1.0/1.1。
  • ssl_ciphers:定义加密套件。可以根据安全需求选择合适的加密方法。
  • ssl_prefer_server_ciphers on;:强制服务器优先选择加密套件。

三、测试

使用https://[ip地址]访问测试
在这里插入图片描述
出现不被信任可点击高级继续访问,证明配置成功


网站公告

今日签到

点亮在社区的每一天
去签到