Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows NET::ERR\u CERT\u COMMON\u NAME\u无效的安全证书未指定使用者备选名称_Windows_Ssl_Active Directory_Ssl Certificate_Iis 8 - Fatal编程技术网

Windows NET::ERR\u CERT\u COMMON\u NAME\u无效的安全证书未指定使用者备选名称

Windows NET::ERR\u CERT\u COMMON\u NAME\u无效的安全证书未指定使用者备选名称,windows,ssl,active-directory,ssl-certificate,iis-8,Windows,Ssl,Active Directory,Ssl Certificate,Iis 8,如果我的英语不太好,我道歉。我正试图从我的IIS服务器创建证书请求,但每次我都完成了请求。客户端仍然不信任web服务器 我的发展背景不是真正的基础设施运营。因此,由于误解,我的问题可能不正确,如果是,请随时教育我。以下是我的问题: 在启动证书请求之前,是否需要将根证书导入Windows IIS服务器?如果是,如何从Windows证书颁发机构创建或导出根证书?该错误可能是由于多种原因造成的 a) 您正在使用IP地址访问网站(假设您拥有基于URL的证书)。因此,请尝试使用已获取证书的URL进行访问

如果我的英语不太好,我道歉。我正试图从我的IIS服务器创建证书请求,但每次我都完成了请求。客户端仍然不信任web服务器

我的发展背景不是真正的基础设施运营。因此,由于误解,我的问题可能不正确,如果是,请随时教育我。以下是我的问题:


在启动证书请求之前,是否需要将根证书导入Windows IIS服务器?如果是,如何从Windows证书颁发机构创建或导出根证书?

该错误可能是由于多种原因造成的

a) 您正在使用IP地址访问网站(假设您拥有基于URL的证书)。因此,请尝试使用已获取证书的URL进行访问

b) 您已为xyz.com购买了证书,但已将其绑定到abc.com。因此,当访问abc.com时,您会收到上述错误。绑定正确的证书(如果有)

c) 您已获得多域证书,但您尝试访问的url未作为SAN添加到证书中。请与您的SSL提供商谈谈,让他将URL作为SAN添加到证书中。

虽然此答案不是Windows特有的,但我通过搜索我的问题找到了此页面,希望以下信息对Linux上有此问题的人有用,比如我:

我也遇到过这个问题,尽管公认的答案可能是正确的,但使用SAN(使用者替代名称)生成CSR(证书签名请求)的过程需要一些解释

有几篇文章对此进行了详细介绍,但基本上,您需要创建一个文件,我们称之为
ssl.conf
,其中包含必要的信息,包括SAN详细信息,在创建CSR时,您将通过参数将其传递给
openssl
命令

(假设您已经生成了密钥)

ssl.conf
的内容可以简单如下。请注意底部详述SAN的部分调整所有参数以满足您的要求。

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=US
ST=New York
L=Rochester
O=End Point
OU=Testing Domain
emailAddress=your-administrative-address@your-awesome-existing-domain.com
CN = www.your-new-domain.com

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = your-new-domain.com
DNS.2 = www.your-new-domain.com
文件的其余部分包含其他X.509信息,在CSR创建过程中会提示您输入这些信息(国家、州等)

现在,您可以按如下方式创建CSR:

openssl req -new -sha256 -out private.csr -key private.key -config ssl.conf 
openssl req -text -noout -verify -in private.csr
其中,
private.csr
指的是您的新csr文件,
private.key
指的是您应该已经生成的密钥,
ssl.conf
指的是上面的文件

您可以按如下方式验证新CSR的内容:

openssl req -new -sha256 -out private.csr -key private.key -config ssl.conf 
openssl req -text -noout -verify -in private.csr
然后,您将在控制台上看到CSR的详细信息,包括SAN详细信息

参考资料:


答案不应该是Chrome强制使用使用者替代名称(SAN)进行证书验证检查吗?下面是一个关于公共名称(CN)和SAN之间的比较的示例

我解决了在创建服务器证书期间添加主题替代名称的问题