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)


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



相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
NodeJS简介
Node.js是一个基于Chrome V8引擎的开源、跨平台JavaScript运行环境,适用于服务器端编程,以事件驱动、非阻塞I/O模型提高性能,广泛应用于Web服务API、实时游戏和后端开发。
61 6
|
21天前
|
机器学习/深度学习 自然语言处理 JavaScript
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
在信息论、机器学习和统计学领域中,KL散度(Kullback-Leibler散度)是量化概率分布差异的关键概念。本文深入探讨了KL散度及其相关概念,包括Jensen-Shannon散度和Renyi散度。KL散度用于衡量两个概率分布之间的差异,而Jensen-Shannon散度则提供了一种对称的度量方式。Renyi散度通过可调参数α,提供了更灵活的散度度量。这些概念不仅在理论研究中至关重要,在实际应用中也广泛用于数据压缩、变分自编码器、强化学习等领域。通过分析电子商务中的数据漂移实例,展示了这些散度指标在捕捉数据分布变化方面的独特优势,为企业提供了数据驱动的决策支持。
40 2
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
|
17天前
|
设计模式 JavaScript 前端开发
探索JavaScript中的闭包:从基础概念到实际应用
在本文中,我们将深入探讨JavaScript中的一个重要概念——闭包。闭包是一种强大的编程工具,它允许函数记住并访问其所在作用域的变量,即使该函数在其作用域之外被调用。通过详细解析闭包的定义、创建方法以及实际应用场景,本文旨在帮助读者不仅理解闭包的理论概念,还能在实际开发中灵活运用这一技巧。
|
20天前
|
存储 JavaScript 前端开发
JavaScript 对象的概念
JavaScript 对象的概念
33 4
|
18天前
|
缓存 JavaScript 前端开发
深入了解JavaScript的闭包:概念与应用
【10月更文挑战第8天】深入了解JavaScript的闭包:概念与应用
|
2月前
|
JavaScript 前端开发
JavaScript简介
JavaScript简介
|
14天前
|
前端开发 JavaScript 程序员
【从前端入门到全栈】Node.js 之核心概念
【从前端入门到全栈】Node.js 之核心概念
|
18天前
|
自然语言处理 JavaScript 前端开发
深入理解JavaScript中的闭包:概念与应用
【10月更文挑战第8天】深入理解JavaScript中的闭包:概念与应用
|
18天前
|
Web App开发 JavaScript 前端开发
JavaWeb 22.Node.js_简介和安装
JavaWeb 22.Node.js_简介和安装
|
2月前
|
自然语言处理 JavaScript 前端开发
探索JavaScript中的闭包:从基础概念到实际应用
本文深入探讨了JavaScript中闭包的概念,从定义、作用域链和实际应用等方面进行了详细阐述。通过生动的比喻和实例代码,帮助读者理解闭包在函数执行上下文中的重要性,以及如何在实际开发中有效利用闭包解决复杂问题。同时,文章也指出了过度使用闭包可能导致的潜在问题,并给出了相应的优化建议。