You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无域名时如何在本地NGINX上通过HTTPS运行Django应用

无域名(本地IP)下启用HTTPS的实现方案

一、生成自签名SSL证书

没有域名的情况下,只能用自签名证书(浏览器会提示不安全,但完全满足本地开发测试需求),用openssl工具生成:

  • 生成证书和私钥:
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
    
    执行命令后会提示填写信息,Common Name(通用名称)必须填你的本地IP(比如192.168.3.10),其他信息可以随便填。
  • 生成Diffie-Hellman组增强安全性:
    openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
    
    这个命令会跑一会儿,耐心等待即可。

二、修改Nginx配置启用SSL

找到你的Django项目对应的Nginx配置文件(一般在/etc/nginx/sites-available/目录下,比如my_django_app),替换成下面的配置:

server {
    listen 443 ssl;
    server_name 192.168.3.10;  # 替换成你的本地IP

    # 指定证书路径
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    # 基础SSL安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 静态文件和图标处理
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/your_user/your_django_project;  # 替换成你的Django项目根目录
    }

    # 转发请求给Gunicorn
    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;  # 如果Gunicorn用端口监听,就改成http://127.0.0.1:8000
    }
}

# 可选:把HTTP请求自动跳转到HTTPS
server {
    listen 80;
    server_name 192.168.3.10;
    return 301 https://$server_name$request_uri;
}
  • 测试配置是否合法:sudo nginx -t,输出test is successful就没问题
  • 重启Nginx生效:sudo systemctl restart nginx

三、调整Django配置适配HTTPS

打开项目的settings.py,修改以下几项:

# 强制所有请求跳转到HTTPS
SECURE_SSL_REDIRECT = True

# 确保Cookie仅通过HTTPS传输
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

# 允许本地IP访问
ALLOWED_HOSTS = ['192.168.3.10', 'localhost']
  • 重启Gunicorn:sudo systemctl restart gunicorn

四、验证效果

打开浏览器输入https://你的本地IP,会弹出“证书不安全”的提示(这是自签名证书的正常现象),选择「高级」→「继续访问」,就能看到你的Django应用通过HTTPS加载了。

内容的提问来源于stack exchange,提问作者Sacco Giacomo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:10:19