Cloudflare搭配Railway.app部署Django时SSL握手失败,求教源证书安装方法
解决Cloudflare与Railway Django应用SSL握手失败问题
方案一:用Railway自动签发自定义域名证书(推荐)
Railway会自动给绑定的自定义域名生成有效SSL证书,操作步骤:
- 先去Godaddy的域名DNS设置,把你的域名A/CNAME记录指向Railway应用的默认域名(比如
xxx.railway.app),同时把Cloudflare对应DNS记录的代理状态改成DNS only,避免影响证书验证。 - 打开Railway应用控制台,进入「Settings」→「Domains」,点击「Add Domain」输入你的自定义域名。
- 等待Railway自动完成域名验证并签发Let's Encrypt证书,大概几分钟就能搞定。
- 证书生效后,把Cloudflare的SSL/TLS模式改回
Full,再把DNS记录的代理状态切回「Proxied」。
方案二:手动安装Cloudflare源证书
如果要使用Cloudflare的源证书,按以下步骤操作:
- 登录Cloudflare控制台,进入你的域名→「SSL/TLS」→「Origin Server」,点击「Create Certificate」。
- 保持默认设置(可以选最长15年有效期),点击「Next」,复制生成的Origin Certificate(PEM格式文本)和Private Key内容。
- 回到Railway应用控制台,进入「Settings」→「Variables」,添加两个环境变量:
SSL_CERT_FILE:粘贴刚才复制的Origin Certificate内容SSL_KEY_FILE:粘贴刚才复制的Private Key内容
- 重启Railway上的Django应用,让新的环境变量生效。
- 确认Cloudflare的SSL/TLS模式为
Full,DNS记录处于「Proxied」状态。
额外检查项
- 确认Django
settings.py里的ALLOWED_HOSTS包含你的自定义域名,比如:ALLOWED_HOSTS = ['yourdomain.com', 'www.yourdomain.com', 'xxx.railway.app'] - 查看Railway应用的部署日志,排查是否有证书加载相关的报错,方便定位问题。
内容的提问来源于stack exchange,提问作者Huzaifa
相关产品推荐
相关产品推荐

