Azure 语音 SDK node.js 无法验证证书

问题描述 投票:0回答:1

我有一个在前提集群中的 openshift 中运行的天蓝色容器。例如设置的路线是

https://speech.company.com

现在我的node.js应用程序托管在同一个openshift中(并且也从位于同一公司网络下的我的机器上尝试)。但我的语音 sdk 代码发出取消事件以进行识别器连续识别。

这是我正在尝试的示例片段

let speechConfig = sdk.SpeechConfig.fromHost(new URL('wss://speech.company.com'))

....
const audioConfig = sdk.AudioConfig.fromStreamInput(stream) // consider i already have the audio stream here

const speechRecognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig)
speechRecognizer.canceled = (s, e) => {
console.log('canceled:', e.errorDetails)
}

输出:

canceled: Unable to contact server. StatusCode: 1006, undefined reason: unable to verify the first certificate

我的 .env 已经有 NODE_TLS_REJECT_UNAUTHORIZED=0 仅供参考 - 当我尝试从 insomnia/postman 中打开带有 ssl 验证的 ws 连接时,它正在连接。如果它打开了,那么我也得到了同样的

unable to verify the first certificate

不知道如何从 SDK 中关闭。我不担心 ssl 验证,因为一切都在本地。

问题:如何忽略 sdk 的 ssl 验证?如果不可能,如何在sdk中附加证书?

我只是尝试模仿实际代码,因为它位于受限设备上。

azure ssl-certificate openshift azure-cognitive-services
1个回答
0
投票

好的。解决办法已经找到了。由于整个基础设施是在企业设置中完成的,因此所有出站呼叫都通过代理进行。

语音容器本身在 docker 内运行多个服务,本地主机出站调用也通过代理。没有 http 2.0 兼容性。

解决方法是当调用 127.0.0.1 又名 localhost 时不使用代理。我们通过 k8s yaml 进行配置。

© www.soinside.com 2019 - 2024. All rights reserved.