Node.js TLSSocket 库里涉及到的证书链的概念简介

举报
Jerry Wang 发表于 2023/01/20 19:49:44 2023/01/20
【摘要】 笔者使用这篇教程介绍的方法,将部署在 SAP ABAP 系统上的 OData 服务,使用如下命令行,给它绑定一个 localhost:8089 的代理。SAP UI5 应用开发教程之一百二十一 - 一键部署开箱即用的代理服务器,解决 SAP UI5 应用开发过程中访问远端 OData 服务的跨域问题npx cors-http-proxy -t https://xxx:44356/sap/op...

笔者使用这篇教程介绍的方法,将部署在 SAP ABAP 系统上的 OData 服务,使用如下命令行,给它绑定一个 localhost:8089 的代理。

SAP UI5 应用开发教程之一百二十一 - 一键部署开箱即用的代理服务器,解决 SAP UI5 应用开发过程中访问远端 OData 服务的跨域问题

npx cors-http-proxy -t https://xxx:44356/sap/opu/odata/sap/ZBOOK_MANAGE_SRV -p 8089

这样,我期望运行在本地的 SAP UI5 应用,通过访问 localhost:8089, 就可以访问到这个 OData 服务,而不会出现任何的跨域访问错误。

理想很丰满,现实很残酷,我遇到如下错误消息:

Error: unable to get local issuer certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1497:34)
at TLSSocket.emit (events.js:315:20)
at TLSSocket._finishInit (_tls_wrap.js:932:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:706:12) {
code: ‘UNABLE_TO_GET_ISSUER_CERT_LOCALLY’
}

unable to get local issuer certificate 是常见的 SSL 证书错误。 它与不完整的证书链有关,例如(最常见的)缺少中间证书。确保整个证书链都存在是避免这个问题的关键。

Understanding certificate chain

证书链(certificate chain)是证书的有序列表,包含 SSL/TLS 服务器证书(server certificate)、中间证书(intermediate certificate)和证书颁发机构 (Certificate Authority,简称 CA) 证书,使接收者能够验证发送者和所有 CA 是否可信。

根证书(Root Certificate)

根证书是属于颁发证书机构的数字证书。

它在大多数浏览器中都预先下载并存储在所谓的 trust store中。 看个具体的例子:

根证书由 CA 严密保护。CA certificate file 通常的名称为 ca.pem 或者 cacerts.pem.

中级证书(Intermediate Certificate)

中间证书像树枝一样从根证书分支出来。 它们充当受保护的根证书和向公众发布的服务器证书之间的中间人。链中总会有至少一个中间证书,但也可以有多个。

服务器证书(server certificate)

服务器证书是颁发给用户需要覆盖的特定域的证书。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。