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

Azure Speech SDK Node.js证书验证失败:如何忽略SSL验证或附加证书?

Azure Speech SDK Node.js 本地集群SSL验证问题解决方案

一、忽略SSL验证(本地环境专用)

你设置的NODE_TLS_REJECT_UNAUTHORIZED=0对Speech SDK可能不生效,因为SDK底层不是纯Node.js实现,包含原生组件。试试下面两种方法:

  • 方法1:使用SDK专属环境变量
    在.env文件里新增一行:

    SPEECHSDK_DISABLE_SSL_CERTIFICATE_VALIDATION=1
    

    这个变量是Speech SDK官方提供的,专门用来跳过证书验证,优先级高于Node.js的全局变量。

  • 方法2:代码层面配置
    如果你的SDK版本支持,创建SpeechConfig时添加禁用验证的属性:

    let speechConfig = sdk.SpeechConfig.fromHost(new URL('wss://speech.company.com'));
    speechConfig.setProperty(sdk.PropertyId.SpeechServiceConnection_SslCertificateValidationDetails, "disable");
    

二、附加自定义证书(合规场景推荐)

要是不能完全禁用验证,把OpenShift集群的根证书导入SDK信任列表:

  1. 导出集群根证书:从OpenShift导出PEM格式的根CA证书,保存为cluster-ca.crt文件。
  2. 配置SDK使用证书:
    // 先设置Node.js全局证书路径
    process.env.SSL_CERT_FILE = '/path/to/cluster-ca.crt';
    
    // 再给Speech SDK指定证书文件
    let speechConfig = sdk.SpeechConfig.fromHost(new URL('wss://speech.company.com'));
    speechConfig.setProperty(sdk.PropertyId.SpeechServiceConnection_SslCertificateFile, '/path/to/cluster-ca.crt');
    
    注意如果是容器部署,要确保证书文件挂载到容器内,路径配置正确。

三、额外排查要点

  • 优先升级Speech SDK到最新稳定版,旧版本可能不支持上述配置
  • 检查OpenShift路由的证书是否完整,有没有缺失中间证书
  • 容器部署时,确认环境变量和证书文件都正确传递到容器内部

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:22:42