🎯 最推荐的解决方案
我建议使用 方案四,因为它最简单可靠:
bash
# 1. 确保已安装 django-extensions
pip3 install django-extensions
# 2. 生成证书
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=192.168.220.10"
# 3. 在 settings.py 中添加 django_extensions 到 INSTALLED_APPS
# 4. 运行 HTTPS 服务器
python manage.py runserver_plus 0.0.0.0:5000 --cert-file cert.pem --key-file key.pem
🔍 验证证书生成
检查证书是否生成成功:
bash
ls -la *.pem
openssl x509 -in cert.pem -text -noout | grep "Subject:"
应该显示:
text
Subject: CN = 192.168.220.10
太好了!方案四成功了!Windows 端显示证书风险是完全正常的现象,这正是我们预期的结果。
🔒 为什么会有证书风险提示
这是因为我们使用的是自签名证书,而不是由公共信任的证书颁发机构(CA)签发的证书:
✅ 自签名证书:我们自己生成的,加密强度与付费证书相同
❌ 浏览器不信任:因为没有在浏览器的信任列表里注册
🔐 加密仍然有效:数据传输仍然是 HTTPS 加密的
🛡️ 如何解决证书风险提示
方法一:在 Windows 中信任证书(推荐)
🎯 最简单的解决方案
对于开发环境,我建议使用方法一(信任证书),这是最彻底的解决方案。
详细的操作步骤:
在 Linux 服务器上执行:
bash
openssl x509 -in cert.pem -out certificate.crt
将 certificate.crt 文件传输到 Windows
可以使用 SCP、SFTP,或者直接共享文件夹
在 Windows 上安装证书:
按 Win + R,输入 certmgr.msc
在左侧选择"受信任的根证书颁发机构"
右键点击"证书",选择"所有任务"→"导入"
选择 certificate.crt 文件,完成导入
重启 Django 服务器:
bash
python manage.py runserver_plus 0.0.0.0:5000 --cert-file cert.pem --key-file key.pem
清除浏览器缓存并重新访问(Ctrl + F5 或 Ctrl + Shift + F5)