Openssl curl:(35)schannel:SNI或证书检查失败:SEC_E_错误的_主体(0x80090322)-目标主体名称不正确

Openssl curl:(35)schannel:SNI或证书检查失败:SEC_E_错误的_主体(0x80090322)-目标主体名称不正确,openssl,ssl-certificate,x509,mmc,Openssl,Ssl Certificate,X509,Mmc,我正在尝试为本地开发设置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”的演示服务器

我正在尝试为本地开发设置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)

我已经使用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管理控制台(mmc)”将自签名证书添加到“受信任的根证书颁发机构”存储中。这是我的

我不明白我错在哪里。请帮助我解决此问题。

您的证书中的通用名称(CN)是“myown数字证书”,而它应该是“localhost”。重新创建CSR并显式设置CN,如下所示

openssl req -new -key key.pem -subj "/CN=localhost" -out csr.pem
证书中的通用名称(CN)是“myown数字证书”,而它应该是“localhost”。重新创建CSR并显式设置CN,如下所示

openssl req -new -key key.pem -subj "/CN=localhost" -out csr.pem

您还可以使用带有CURL的-k开关来忽略SSL证书错误。显然,对于希望确保证书良好的环境,不建议这样做。

您也可以使用-k开关和CURL来忽略SSL证书错误。显然,对于希望确保证书良好的环境,不建议这样做。

(1)这不是一个编程或开发问题或问题——尽管我没有在SU或SF上发现预期的重复(2)证书中的CommonName=CN(或SubjectAlternativeName=SAN,如果使用,简单的OpenSSL不会)必须与URL中使用的名称匹配才能访问服务器,即如果使用
https://localhost:port
CN必须是
localhost
(注意没有端口)(1)这不是一个编程或开发问题或问题——尽管我没有在SU或SF上找到我预期的复制(2)证书中的CommonName=CN(或SubjectAlternativeName=SAN(如果使用,简单OpenSSL不使用)必须与URL中使用的名称匹配才能访问服务器,即如果使用
https://localhost:port
CN必须是
localhost
(注意不带端口)