- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Windows 上使用 Node.js 使用自签名证书访问在 IIS Express 中本地运行的 HTTPS 站点时遇到问题。重现代码:
const https = require("https");
const req = https.request(
{
hostname: "localhost",
path: "/api/heroes",
port: 44323,
method: "GET"
},
res => res.on("data", console.log)
);
req.on("error", console.error);
node test.js
运行它给出:
Error: unable to verify the first certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1321:34)
at TLSSocket.emit (events.js:223:5)
at TLSSocket._finishInit (_tls_wrap.js:794:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:608:12) {
code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
}
certmgr
中看到了证书在当前用户的受信任的根证书颁发机构下。我尝试将证书导出为 PEM,然后指向
NODE_EXTRA_CA_CERTS
对它;我也尝试过创建
https.Agent
及其
ca
通过读取证书设置的属性。两者都给出相同的错误。
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
4d:16:7e:86:ce:1a:56:97:48:62:21:cc:7f:ce:ac:55
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=localhost
Validity
Not Before: Oct 6 02:20:56 2018 GMT
Not After : Oct 5 00:00:00 2023 GMT
Subject: CN=localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:db:6c:55:9e:a5:a8:83:7f:ed:0b:62:88:9c:16:
05:31:64:fe:e7:23:73:0a:9e:5e:49:90:c8:ca:98:
b5:96:52:ad:36:79:17:81:54:bd:99:99:a1:c3:d3:
94:e3:34:83:24:ae:64:e4:33:a7:70:cf:fd:a1:91:
df:fb:c4:e5:62:c1:5a:ab:dd:42:e2:b3:33:38:99:
9a:be:10:a4:9a:a7:aa:a6:30:59:a6:29:25:3f:95:
2f:7e:c8:79:42:8f:d5:54:c1:2b:5e:91:3c:7c:53:
e2:34:68:51:21:f2:1a:71:66:78:1c:fc:93:f7:f8:
7e:70:43:22:4f:53:8c:5a:9b:08:ef:d4:af:79:b1:
be:be:7c:bd:cf:04:9b:30:7f:a7:19:f6:dc:3c:30:
b2:6f:83:fd:45:65:1c:2e:66:ad:d6:fc:d6:3d:09:
60:53:32:c7:13:24:80:44:25:05:81:41:61:f0:65:
32:1a:1b:b2:c7:a0:bb:52:d9:a9:5d:75:4d:d8:ac:
6a:d6:e2:97:d8:e0:cc:1b:1e:bf:05:e6:c5:11:69:
89:c8:c4:d1:fe:8c:d2:f6:f0:04:bb:38:c7:50:7f:
a7:78:80:03:27:a6:86:86:78:d7:5d:d3:cb:47:09:
b6:f6:ca:a2:c8:51:95:e2:85:3d:46:74:4f:50:b2:
7f:75
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage:
Digital Signature, Key Encipherment, Data Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Alternative Name:
DNS:localhost
Signature Algorithm: sha256WithRSAEncryption
45:c4:44:60:e6:bc:a2:8f:8f:db:5e:7c:33:14:a6:59:d7:7e:
ef:88:e6:75:21:dc:df:3e:3b:be:7c:0e:c7:f4:1e:84:0c:56:
05:78:41:08:7a:97:f7:47:d9:6f:91:39:b3:9f:0b:b2:e0:c9:
49:08:3b:9a:80:fd:07:3d:cc:55:21:d2:52:27:f3:a0:f2:35:
a8:0c:56:0d:4b:c9:20:e1:94:8d:43:b6:f3:72:55:5e:0d:27:
55:0e:b5:72:26:90:65:fb:28:98:87:bd:c8:68:d5:44:a6:69:
af:0b:2e:20:e2:4c:7b:50:68:9d:25:56:3c:0d:2d:b9:54:0b:
21:cf:71:f5:92:ad:b5:72:8f:88:3e:d5:3f:54:40:58:d3:1c:
40:99:3a:1f:59:40:81:52:39:55:cf:2f:7e:18:27:86:6b:67:
82:c3:d0:2d:93:91:b3:5b:02:b5:3a:8a:46:90:93:20:ed:09:
4e:7a:37:f6:21:2b:84:5d:eb:bc:96:63:cd:08:24:4a:0d:ee:
8a:86:d3:6c:f8:3c:0d:4f:6a:a7:e1:ca:17:83:bb:5e:99:ff:
87:19:a1:d5:b9:b9:54:59:41:44:32:36:20:bd:3f:4d:ad:6d:
4f:11:c6:76:77:2d:d7:9e:21:17:eb:d5:fd:a2:58:0a:dc:1d:
14:5e:d2:f3
最佳答案
根据定义,自签名证书不受信任。
我建议使用 let's encrypt :这是一个开源项目,完全免费,非常容易设置,它可以让您避免浪费时间进行奇怪的黑客攻击。
它帮助我节省了很多时间。
希望这可以帮助。
关于node.js - 无法信任 Node.js 中来自 IIS Express 的自签名 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62337939/
我的 Web 应用程序在后端使用 Node.js 和 Express。当违反内容安全策略 (CSP) 时,报告 URI 报告空对象。我的后台代码如下: app.use(bodyParser.urlen
在服务器端提供静态服务的方式在 Express 中似乎非常简单: To serve static files such as images, CSS files, and JavaScript fil
var express = require('express'); var app = express(); 这就是我们创建快速应用程序的方式。但是这个'express()'是什么?它是方法还是构造函
我在尝试安装时收到以下错误 express : npm ERR! code ERR_OSSL_PEM_NO_START_LINE npm ERR! errno ERR_OSSL_PEM_NO_STAR
如 express 所述routing guide和 this answer ,我们可以创建“迷你应用程序”并从主应用程序使用它。但是我看到一段代码,它在模块中使用 app 而不是 router ap
我正在写一个 NestJS应用。现在我想安装 Express中间件 express-openapi-validator . 但是,我无法让它工作。有一个 description for how to
我看过很多类似的帖子,似乎我声明的 var1 似乎需要在其他地方传递,但我似乎无法弄清楚。 public Expression> CreateEqualNameExpression(string ma
Express(或 Connect 的)bodyParser 中间件被标记为已弃用,建议用户改用: app.use(connect.urlencoded()) app.use(connect.json
我只是想知道这种看似尴尬的配置的原因是什么(来自 Getting Started w/ Apollo Server ), const server = new ApolloServer({ //
我正在尝试在表单组中写入表单控件特定的验证错误消息。我在网上找到了几个教程和示例 ( such as this one ),概述了一个看似简单的 *ngIf div,如果在控件上检测到错误,则显示错误
我有一个简单的 Express 应用程序,托管在 AWS 上,使用无服务器框架。 我正在使用 serverless-http 包装 express 应用程序以部署到 AWS lambda 函数,并使用
我最近在 mozilla 教程的帮助下安装了 node 和 express。我正在安装应用程序生成器的下一步,但是当我运行时 npm install express-generator -g 在我的终
我遇到过两种不同的方式来定义 express、use() 中间件,我想知道它们之间是否有任何区别,或者它是否只是语法糖? 一个 const app = express(); app.use(cors(
我试图让我的 Jade 模板编写一个相对于当前 URL 的超链接 ( )。 例如,我的 View 是从 http://localhost/cats 调用的它看起来像这样: extends layou
检查 Express 文档我在下面看到了这种解决方案: app.all('/*', function(req, res) { console.log('Intercepting request
我似乎无法弄清楚如何包含多个模型。 我有三个模型。Tabs, Servers, and PointsTabs hasMany ServerServers belongsTo Tabs and hasM
我已使用Web PI安装IIS Express。在托盘中,没有IIS Express图标。如何在不使用命令行的情况下启动IIS Express?我希望IIS永久运行,因此没有命令行。 最佳答案 参见R
我不想在我的网站上使用 Jade 或 EJS。如何在不默认使用 Jade 模板的情况下创建快速站点?谢谢 最佳答案 如果您想要的是直接为静态 html 文件提供缓存资源的可能性,同时仍然能够点击“/”
Express是否支持HTTP动词“PATCH”,例如: app.patch("/api/resource", function(req, res){ ... }); 我检查了文档,对我来说似乎还不清
我正在快速服务器中运行 vue SPA。问题是当使用历史模式并刷新页面时,我得到一个 404 not found 异常。我尝试使用 connect-history-api-fallback 但不起作用
我是一名优秀的程序员,十分优秀!