插件窝 干货文章 Nginx本地如何配置SSL访问

Nginx本地如何配置SSL访问

Nginx 证书 配置 本地 391    来源:    2025-04-21

Nginx本地配置SSL访问指南

要在本地Nginx服务器上配置SSL访问,您需要完成以下步骤:

1. 生成自签名SSL证书

首先,您需要创建自签名证书(用于开发环境):

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

# 生成私钥和证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx-selfsigned.key -out nginx-selfsigned.crt

在生成过程中,系统会提示您输入一些信息。对于本地开发,您可以随意填写这些字段。

2. 配置Nginx使用SSL

编辑您的Nginx配置文件(通常在/etc/nginx/sites-available/your-site):

server {
    listen 443 ssl;
    server_name localhost;  # 或您的本地域名如 example.test

    ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;

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

    # 其他配置...
    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

# 可选:将HTTP重定向到HTTPS
server {
    listen 80;
    server_name localhost;  # 同上
    return 301 https://$host$request_uri;
}

3. 测试并重新加载Nginx配置

# 测试配置是否正确
nginx -t

# 重新加载配置
systemctl reload nginx

4. 信任自签名证书(可选)

要在浏览器中避免安全警告,您可以将自签名证书添加到系统的信任存储中:

  • Windows: 双击.crt文件,选择"安装证书",选择"本地计算机",选择"将所有证书放入下列存储",浏览选择"受信任的根证书颁发机构"
  • macOS: 双击.crt文件,将其添加到"系统"钥匙串,然后右键证书选择"信任"
  • Linux: 将证书复制到/usr/local/share/ca-certificates/,然后运行update-ca-certificates

5. 使用mkcert工具(替代方案)

对于开发环境,更简单的方法是使用mkcert工具:

# 安装mkcert
brew install mkcert  # macOS
# 或
sudo apt install mkcert  # Ubuntu/Debian

# 创建并安装本地CA
mkcert -install

# 为本地域名生成证书
mkcert localhost 127.0.0.1 ::1 example.test

# 然后在Nginx配置中使用这些证书

常见问题解决

  1. SSL协议错误:确保在配置中启用了现代协议(TLSv1.2或TLSv1.3)
  2. 证书不受信任:确保已将证书添加到系统信任存储
  3. 端口冲突:确保没有其他服务占用443端口
  4. 权限问题:确保Nginx进程有权限读取证书文件

这样配置后,您就可以通过https://localhost或您配置的域名访问本地Nginx服务器了。