You need to enable JavaScript to run this app. 如何将Flask的ssl_context设置为环境变量或通过配置文件加载
优惠活动
大模型
产品
解决方案
定价
更多

如何将Flask的ssl_context设置为环境变量或通过配置文件加载

解决方案
  • 第一步:在配置类中新增不同环境的SSL_CONTEXT配置项,仅开发环境配置adhoc证书
import os
from decouple import config

class Config:
    DEBUG = False
    DEVELOPMENT = False
    SECRET_KEY = config('SECRET_KEY')
    # 默认全局不启用自定义SSL配置
    SSL_CONTEXT = None

class ProductionConfig(Config):
    pass

class StagingConfig(Config):
    DEBUG = True

class DevelopmentConfig(Config):
    DEBUG = True
    DEVELOPMENT = True
    # 仅本地开发环境启用临时自签名证书
    SSL_CONTEXT = 'adhoc'
  • 第二步:修改应用启动入口的代码,直接读取配置项作为ssl_context参数值
if __name__ == "__main__":
    app.run(
        ssl_context=app.config.get('SSL_CONTEXT'),
    )
  • 补充说明:
    1. 部署到Heroku时,平台会自动处理SSL证书,且Heroku默认使用Gunicorn等WSGI服务器启动应用,不会执行if __name__ == "__main__"下的启动逻辑,上述配置不会对线上环境产生任何影响,无需手动修改代码提交。
    2. 如果你习惯使用flask run命令启动本地服务,之前配置的FLASK_RUN_CERT = 'adhoc'不生效大概率是因为你没在本地开发环境加载该环境变量,只需在本地的.env文件中添加该配置即可,该参数是flask run命令的专属参数,仅本地生效,不会影响Heroku环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 13:15:04