如何为 EAP-TLS 设置客户端证书以便 Windows 找到它?

如何为 EAP-TLS 设置客户端证书以便 Windows 找到它?

我正在尝试将 Windows 10 Home 机器连接到使用 EAP-TLS 保护的 WLAN。

当我到达那个点时,我总是会得到一个

"The user certificate required for the network can't be found on this computer."

尽管应该使用的证书已导入到本地计算机上的个人证书中,但事件查看器中仍然会出现错误消息。

看起来将此预期客户端证书与网络连接关联的方式不是通过配置文件 XML 文件,而是与证书中的 SubjectAltName 有关。

我尝试过类似

cat > $CLIENTCERT.v3.ext << EOF
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
subjectAltName = otherName:msUPN;UTF8:machine/first last
EOF

就像extfile使用 OpenSSL 生成证书一样,但是没有用。

我需要如何设置客户端证书以便 Windows 能够找到并使用它?

答案1

这在我的 Windows 10 Home 机器上运行,没有域控制器或活动目录。

在这种情况下OwnCA.keyOwnCA.crt来自用于测试的自签名根 CA。

openssl req -new -nodes -out client.csr -newkey rsa:4096 -keyout client.key -subj '/CN=WindozeX/C=AT/ST=NO/L=Zwettl/O=UL'

cat > client.v3.ext << EOF
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
EOF

openssl x509 -req -in client.csr -CA OwnCA.crt -CAkey OwnCA.key -CAcreateserial -out client.crt -days 5000 -sha256 -extfile client.v3.ext
openssl pkcs12 -export -out client.pfx -inkey client.key -in client.crt -certfile OwnCA.crt

根据一些 Microsoft 文档,subjectAltName必须将其设置为用户的 UPN。在我的计算机上whoami /upn出现错误,并且客户端证书在没有此扩展属性的情况下也能正常工作。

该文件client.pfx需要导入到“本地机器”证书存储区的“个人”部分certlm.msc,像其他所有操作一样,我以admin用户身份使用它。

相关内容