我多次遇到这个问题,每次都有不同的原因,所以我决定写下对我有用的原因和确切的命令。
以下是一些原因:
1- 从 Windows 对话框复制和粘贴证书指纹会在您的哈希中添加一个隐藏字符。它在文本编辑器中不可见,但您需要删除该字符才能使其工作。
2- SSL 指纹应该在 Personal -> Certificates 中可用,以便与 localhost 一起使用。
3-应该是 'ipport=' 而不是 'ipport:'
4- SSL 证书应该有一个私钥。如果您使用的是证书管理控制台,请确保它在证书视图上有一个小钥匙图标。
5- GUID 应以完整格式定义:{a10b0420-a21f-45de-a1f8-818b5001145a},并且在 powershell 中应有一个引号:'{a10b0420-a21f-45de-a1f8-818b5001145a}' 因此,PowerShell 格式不同从命令行。
6- SSL 证书应该有完整的字符,所有填充 '0' 并且没有任何空格。您可以复制指纹(小心删除特殊隐藏字符)并删除空格,或者如果证书已注册到另一个地址,则使用“netsh http show sslcert”获取值。
什么对我有用:
这是在 powershell 中对我有用的确切命令:
netsh http add sslcert ipport=0.0.0.0:20001 certhash=5304c034548b27c72b5e9c14f0c7bdd13e52d760 appid='{a10b0420-a21f-45de-a1f8-818b5001145a}'
这是命令行语句:
netsh
http add sslcert ipport=0.0.0.0:20001 certhash=5304c034548b27c72b5e9c14f0c7bdd13e52d760 appid={a10b0420-a21f-45de-a1f8-818b5001145a}
更多命令可帮助您避免相关问题:
使用以下命令查看当前注册的证书。您可以从那里找到并重用 certhash 或您的 appid:
netsh http show sslcert
如果证书已经注册了类似的 ip 和 port,则需要将其删除。我发现它会导致 localhost、127.0.0.1 和 0.0.0.0 出现问题。您只需要在测试环境中注册 0.0.0.0。使用以下命令删除可能损坏的证书:
netsh http delete sslcert ipport=0.0.0.0:20001