为本地dify启用https需三步:先用openssl生成自签名证书(含-nodes参数)并设私钥权限600;再配置nginx监听443端口,正确设置ssl_certificate、ssl_certificate_key及x-forwarded-proto $scheme;最后添加80端口重定向规则并信任证书。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

为本地运行的Dify服务启用HTTPS,避免浏览器标记“不安全”警告,确保API密钥、用户提示词等敏感数据在传输中不被窃听或篡改。
生成自签名证书(开发环境快速启用)
第一步:在Dify项目根目录下新建certs文件夹,进入该目录:mkdir -p /dify/certs && cd /dify/certs
第二步:执行OpenSSL命令生成证书和私钥:openssl req -x509 -newkey rsa:4096 -nodes -keyout server.key -out server.pem -days 365 -subj "/CN=dify.local"
这一步会同时生成server.pem(证书)和server.key(私钥)。注意必须用-nodes参数,否则Nginx启动时会要求输入密码,导致服务无法自动拉起。【私钥文件权限必须设为600】,否则Nginx拒绝读取——执行chmod 600 server.key立即修复。
第三步:将生成的两个文件复制到Nginx配置指定路径,例如/dify/docker/nginx/conf.d/cacerts/,确保路径与后续Nginx配置中的ssl_certificate和ssl_certificate_key指向一致。
配置Nginx启用HTTPS监听
打开Nginx主配置文件(如/etc/nginx/sites-available/dify-https),写入以下server块:
server {<br> listen 443 ssl;<br> server_name dify.local;<br> ssl_certificate /dify/docker/nginx/conf.d/cacerts/server.pem;<br> ssl_certificate_key /dify/docker/nginx/conf.d/cacerts/server.key;<br> ssl_protocols TLSv1.2 TLSv1.3;<br> location / {<br> proxy_pass http://localhost:3000;<br> proxy_set_header Host $host;<br> proxy_set_header X-Real-IP $remote_addr;<br> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br> proxy_set_header X-Forwarded-Proto $scheme;<br> }<br> location /api/ {<br> proxy_pass http://localhost:8000;<br> proxy_set_header Host $host;<br> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br> }<br>}
关键点在于X-Forwarded-Proto $scheme必须存在,否则Dify后端生成的重定向URL会是http://开头,造成混合内容错误。不要漏掉/api/末尾的斜杠,Nginx对路径匹配极其严格,缺了它会导致所有API请求404。
保存后执行nginx -t验证语法,再运行nginx -s reload重载配置。
强制HTTP跳转HTTPS(安全加固)
方法一:在同一个配置文件中追加一个仅监听80端口的server块:
server {<br> listen 80;<br> server_name dify.local;<br> return 301 https://$server_name$request_uri;<br>}
这行return 301会把所有HTTP请求无条件重定向到对应HTTPS地址,比用rewrite更高效也更可靠。不需要额外模块支持,Nginx原生指令。
方法二:如果使用Nginx Proxy Manager(NPM)可视化管理,直接在对应代理主机设置页勾选“Force SSL”即可,后台自动注入等效配置。
信任自签名证书(让浏览器不报错)
在macOS上:双击server.pem文件→导入“系统”钥匙串→右键证书→“显示简介”→展开“信任”→将“使用此证书时”设为“始终信任”→关闭窗口并输入密码确认。
在Windows上:右键server.pem→“安装证书”→选择“本地计算机”→“将所有证书放入下列存储”→点击“浏览”选中“受信任的根证书颁发机构”→完成。
Linux桌面环境(如Ubuntu)需手动导入到/usr/local/share/ca-certificates/并执行sudo update-ca-certificates。Chrome和Edge基于系统证书库,Firefox则需单独在设置里导入——打开about:preferences#privacy→“证书”→“查看证书”→“权威机构”→“导入”。











