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);
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'
}
使用`openssl x509-in cert.pem-noout-text查看证书会得到以下结果:
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
我知道有一些解决方法,包括禁用证书检查(或者只在本地的普通HTTP上运行API),但我真的很好奇,也很困惑为什么它不能在HTTPS上工作。非常感谢任何帮助。
如果URL使用自签名证书,则在以下情况下失败 我知道我可以将传递给参数,如下所示: 但是,我想做的是将请求指向磁盘上的公钥副本,并告诉它信任该证书。
我正试图将我的计算机配置为信任用于测试网站的自签名证书。然而,我在Firefox上遇到了一些问题。Chrome和IE都没问题。 我做了以下几点。 使用OpenSSL创建2048位pem rsa密钥和crt 从密钥和crt文件创建pfx文件 使用MMC将pfx导入到服务器上的个人证书存储中 将IIS配置为使用站点的证书 在客户端PC上 null 我还尝试将证书直接添加到Firefox的权限列表中。它
问题内容: 我正在开发一个登录到本地无线路由器(Linksys)的小应用程序,但是我遇到了路由器的自签名ssl证书问题。 我运行wget 192.168.1.1并得到: 在节点中,捕获的错误是: 我当前的示例代码是: 我如何才能使node.js等效于“ –no-check-certificate”? 问题答案: 便宜又不安全的答案: 加 在代码中,调用之前 在此问题中回答了一种更安全的方法(上述解
“引发异常:System.dll中的'System.Net.WebException'” 其他信息:基础连接已关闭:无法为SSL/TLS安全通道建立信任关系。" 我已经为我的本地机器和当前用户将我的自签名证书添加/导入到Trusted RootCA,但我仍然收到上述异常。 你知道为什么我会这样吗。net还不接受我的证书吗?
我当前的示例代码是: 我如何让node.js执行“--no-check-certificate”的等效操作?
问题内容: 如果URL使用自签名证书,则失败并显示 我知道我可以像这样传递给参数: 但是,我想做的是将请求指向磁盘上的公共密钥副本,并告诉它信任该证书。 问题答案: 尝试: