curl: (35) schannel: SNI 或证书检查失败: SEC_E_WRONG_PRINCIPAL (0x80090322) - 目标主体名称不正确

Muk*_*mar 3 openssl mmc ssl-certificate x509

我正在尝试为本地开发设置 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
Run Code Online (Sandbox Code Playgroud)

这是输出“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);
Run Code Online (Sandbox Code Playgroud)

我已使用curl 命令从命令提示符访问了URL

curl https://localhost:8000
Run Code Online (Sandbox Code Playgroud)

我收到的错误是

curl: (35) schannel: SNI or certificate check failed: SEC_E_WRONG_PRINCIPAL (0x80090322) - The target principal name is incorrect.
Run Code Online (Sandbox Code Playgroud)

我已使用“Microsoft 管理控制台 (mmc)”在“受信任的根证书颁发机构”存储中添加了自签名证书。这是我的 证书图像

我不明白我哪里错了。请帮我解决这个问题。

Jas*_*omb 10

您还可以将 -k 开关与 CURL 一起使用来忽略 SSL 证书错误。显然,对于您想要确保证书良好的环境,不建议这样做。