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

基于Python的Azure ChatBot无法处理HTTPS请求的解决问询

问题描述

该聊天机器人运行正常,可接收HTTP请求,但无法处理HTTPS请求

输入图片描述
输入图片描述
输入图片描述

当前使用微软BotBuilder Python多轮提示示例代码,Azure ChatBot仅支持HTTPS URL,需修改代码实现HTTPS支持。

解决方案

要让Python BotBuilder示例支持HTTPS,可通过以下两种方式实现:

方式一:自带HTTPS服务器(测试场景)

  1. 生成自签名SSL证书(用于测试):
    openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
    
  2. 修改示例启动代码(以Flask为例):
    找到原代码中app.run()的部分,替换为以下代码:
    import ssl
    context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
    context.load_cert_chain('cert.pem', 'key.pem')
    app.run(host='0.0.0.0', port=3978, ssl_context=context)
    

方式二:反向代理(生产场景)

生产环境推荐用Nginx做反向代理,将HTTPS请求转发到本地HTTP Bot服务:

  1. 准备受信任的SSL证书(可通过Let's Encrypt获取免费证书)
  2. 添加Nginx配置片段:
    server {
        listen 443 ssl;
        server_name 你的域名;
    
        ssl_certificate /证书路径/cert.pem;
        ssl_certificate_key /证书路径/key.pem;
    
        location /api/messages {
            proxy_pass http://localhost:3978/api/messages;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  3. 重启Nginx服务,Azure ChatBot即可配置该HTTPS域名作为终结点。

注意事项

  • 自签名证书仅适用于测试,生产环境必须使用CA颁发的可信证书
  • 测试时可借助ngrok将本地HTTPS服务暴露到公网:
    ngrok https 3978
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:22:13