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

本文涉及的产品
Digicert DV 证书 单域名,20个 3个月
简介: Node.js TLSSocket 库里涉及到的证书链的概念简介

笔者使用这篇教程介绍的方法,将部署在 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)


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



相关文章
|
14天前
|
Web App开发 JavaScript 前端开发
NodeJS简介
Node.js是一个基于Chrome V8引擎的开源、跨平台JavaScript运行环境,适用于服务器端编程,以事件驱动、非阻塞I/O模型提高性能,广泛应用于Web服务API、实时游戏和后端开发。
35 6
|
3月前
|
设计模式 JavaScript 前端开发
在JavaScript中,继承是一个重要的概念,它允许我们基于现有的类(或构造函数)创建新的类
【6月更文挑战第15天】JavaScript继承促进代码复用与扩展,创建类层次结构,但过深的继承链导致复杂性增加,紧密耦合增加维护成本,单继承限制灵活性,方法覆盖可能隐藏父类功能,且可能影响性能。设计时需谨慎权衡并考虑使用组合等替代方案。
43 7
|
4天前
|
自然语言处理 JavaScript 前端开发
探索JavaScript中的闭包:从基础概念到实际应用
本文深入探讨了JavaScript中闭包的概念,从定义、作用域链和实际应用等方面进行了详细阐述。通过生动的比喻和实例代码,帮助读者理解闭包在函数执行上下文中的重要性,以及如何在实际开发中有效利用闭包解决复杂问题。同时,文章也指出了过度使用闭包可能导致的潜在问题,并给出了相应的优化建议。
|
25天前
|
JavaScript 前端开发
js bom的概念
js bom的概念
26 1
|
1月前
|
JavaScript 前端开发
JavaScript BOM 的概念(浏览器对象模型)
JavaScript BOM 的概念(浏览器对象模型)
30 1
|
1月前
|
JavaScript 前端开发
JavaScript 事件的概念
JavaScript 事件的概念
48 1
|
1月前
|
JavaScript 前端开发 Java
JavaScript中的闭包概念讲解
闭包是指函数内部嵌套另一个函数,并且内部函数引用了外部函数的数据(如变量或函数)。这样的内部函数被称为闭包。以示例代码为例,`fn1` 中有两个闭包函数 `fn2` 和 `fn3`,它们都可以访问并修改 `fn1` 中的变量 `a`。
13 1
|
20天前
|
存储 移动开发 JavaScript
JavaScript简介及示例
JavaScript简介及示例
|
1月前
|
JavaScript 前端开发
JavaScript 简介
JavaScript 简介
25 0
|
3月前
|
JSON JavaScript 前端开发
【JavaScript】JavaScript中的深拷贝与浅拷贝详解:基础概念与区别
JavaScript 中,理解数据拷贝的深浅至关重要。浅拷贝(如扩展运算符`...`、`Object.assign()`)仅复制对象第一层,共享内部引用,导致修改时产生意外联动。深拷贝(如自定义递归函数、`_.cloneDeep`或`JSON.parse(JSON.stringify())`)创建独立副本,确保数据隔离。选择哪种取决于性能、数据独立性和资源需求。深拷贝虽慢,但确保安全;浅拷贝快,但需小心引用共享。在面试中,理解这些概念及其应用场景是关键。
53 4
【JavaScript】JavaScript中的深拷贝与浅拷贝详解:基础概念与区别