在 Kubernetes 集群上对 AutoDesk-Forge 进行身份验证时出现 SSL 证书错误

Posted

技术标签:

【中文标题】在 Kubernetes 集群上对 AutoDesk-Forge 进行身份验证时出现 SSL 证书错误【英文标题】:SSL Certificate Errors authenticating AutoDesk-Forge on Kubernetes cluster 【发布时间】:2021-10-26 23:28:30 【问题描述】:

我们有一个使用 kubernetes 部署的 Web 应用程序,最近(21 年 8 月 9 日这一周)我们突然开始使用 forge API 时出现错误。在我们的开发环境中一切正常(仅使用 Docker 容器,没有 kubernetes)。

我们使用的是较旧的 forge api(forge-apis npm 包;我们计划升级到 autodesk.forge.designautomation,但现在根本没有时间/资源)。

我们主要使用模型衍生API,但问题可能都与身份验证步骤有关:

const oAuth = new ForgeSDK.AuthClientTwoLegged(config.forgeClientId, config.forgeClientSecret, [
  'data:read',
  'data:write',
  'data:create',
  'bucket:read',
  'bucket:create'],
   true)
token = await oAuth.authenticate()

很多时候,这将失败并出现以下错误:

错误 [ERR_TLS_CERT_ALTNAME_INVALID]:主机名/IP 不匹配 证书的替代名称:主机:developer.api.autodesk.com。不在 证书的替代名称:DNS:.beta.doxo.com, DNS:beta.doxo.com 在 Object.checkServerIdentity (tls.js:288:12) 在 TLSSocket.onConnectSecure (_tls_wrap.js:1485:27) 在 TLSSocket.emit (events.js:321:20) 在 TLSSocket._finishInit (_tls_wrap.js:918:8) 在 TLSWrap.ssl.onhandshakedone (_tls_wrap.js:688:12) 原因:“主机:developer.api.autodesk.com。不在证书的替代名称中: DNS:.beta.doxo.com, DNS:beta.doxo.com”,主机: 'developer.api.autodesk.com',证书: 主题:[对象:空原型] CN:'.beta.doxo.com', 发行者:[对象:空原型] C:“美国”, O:“亚马逊”, OU: '服务器 CA 1B', CN: '亚马逊' , subjectaltname: 'DNS:.beta.doxo.com, DNS:beta.doxo.com', infoAccess:[对象:空原型] 'OCSP - URI':[数组], 'CA 发行者 - URI':[数组]

但是,并非总是如此。有时它会进入各种后续步骤(例如,通过 BucketsAPI 创建存储桶、上传到存储桶或将文件转换为 SVF)。它会走多远似乎完全随机,并且通常在这些步骤之一中挂起并停止接收响应,直到我们的连接超时错误抛出。

有时当它进入 SVF 转换步骤时,它会抛出一个不同的证书相关错误:

错误:SSL 证书错误:ERR_CERT_COMMON_NAME_INVALID 在 NavigatorWatcher.waitForNavigation (/opt/model_service/node_modules/puppeteer/lib/NavigatorWatcher.js:76:20) 在 processTicksAndRejections (internal/process/task_queues.js:97:5) 在异步 Page.goto (/opt/model_service/node_modules/puppeteer/lib/Page.js:465:19)

其他时候,在 SVG 转换过程中会抛出 JSON 循环引用错误,同样与证书有关:

TypeError: Converting circular structure to JSON --> 从 具有构造函数“Object”的对象---属性“issuerCertificate” 在 JSON.stringify() 处关闭圆圈

到目前为止,我的最佳评估是 kubernetes DNS 存在问题 - 但我无法弄清楚为什么 1)这会突然开始发生(这已经稳定了好几年)和 2)为什么这种行为看起来有点随机。

非常感谢您的任何意见,谢谢。

【问题讨论】:

【参考方案1】:

我们确实在 2018 年 12 月迁移到 TLS 1.2 (see more info here),您能否确认您的应用和环境已为此设置?

此外,我们有时必须更新认证,您的环境是否可能将旧证书保留在缓存中?

【讨论】:

以上是关于在 Kubernetes 集群上对 AutoDesk-Forge 进行身份验证时出现 SSL 证书错误的主要内容,如果未能解决你的问题,请参考以下文章

快速搭建kubernetes高可用集群(3master+3worker+负载均衡)

Kubernetes 集群中的 Kafka - 如何从 Kubernetes 集群外部发布/使用消息

[K8s]Kubernetes-集群管理

kubernetes 的master节点挂了对整个集群有啥影响

管理数百个Kubernetes集群需要什么?

Kubernetes:是不是可以在 Kubernetes 集群中使用单个请求来命中多个 pod