curl: (35) schannel: SNI 或证书检查失败:SEC_E_WRONG_PRINCIPAL (0x80090322) - 目标主体名称不正确
curl: (35) schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL (0x80090322) - The target principal name is incorrect
我正在尝试为本地 development.I 设置 https 服务器,我正在使用 Windows 10 机器。我已经使用 openssl 生成了一个自签名证书。我使用了以下命令。
openssl genrsa -out key.pem
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem
rm csr.pem
这是输出 "hello world".
的演示服务器代码 (NodeJS)
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
我已经使用 curl 命令从命令提示符访问 URL
curl https://localhost:8000
我得到的错误是
curl: (35) schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL (0x80090322) - The target principal name is incorrect.
我已经使用 "Microsoft management Console (mmc)" 在 "Trusted root certificate authority" 商店中添加了自签名证书。这是我的
Certificate image.
我不明白我哪里错了。请帮我解决这个问题。
您证书中的通用名称 (CN) 是“我自己的数字证书”,而它应该是“localhost”。重新创建 CSR 并像这样显式设置 CN
openssl req -new -key key.pem -subj "/CN=localhost" -out csr.pem
您还可以将 -k 开关与 CURL 结合使用来忽略 SSL 证书错误。显然,对于要确保证书良好的环境,不建议这样做。
我正在尝试为本地 development.I 设置 https 服务器,我正在使用 Windows 10 机器。我已经使用 openssl 生成了一个自签名证书。我使用了以下命令。
openssl genrsa -out key.pem
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem
rm csr.pem
这是输出 "hello world".
的演示服务器代码 (NodeJS)const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
我已经使用 curl 命令从命令提示符访问 URL
curl https://localhost:8000
我得到的错误是
curl: (35) schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL (0x80090322) - The target principal name is incorrect.
我已经使用 "Microsoft management Console (mmc)" 在 "Trusted root certificate authority" 商店中添加了自签名证书。这是我的 Certificate image.
我不明白我哪里错了。请帮我解决这个问题。
您证书中的通用名称 (CN) 是“我自己的数字证书”,而它应该是“localhost”。重新创建 CSR 并像这样显式设置 CN
openssl req -new -key key.pem -subj "/CN=localhost" -out csr.pem
您还可以将 -k 开关与 CURL 结合使用来忽略 SSL 证书错误。显然,对于要确保证书良好的环境,不建议这样做。