我多次面對這個問題,每次遇到不同的原因,我決定寫出對我有用的原因和確切的命令。
這裏有一些原因:從Windows對話框
1複製和粘貼證書指紋添加了一個隱藏的性格你的哈希值。它在文本編輯器中不可見,但您需要刪除該字符才能使其正常工作。
2-在個人 - >證書中使用SSL指紋可與本地主機一起使用。
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和端口,您需要將其刪除。我發現它與localhost,127.0.0.1和0.0.0.0有關。您只需在您的測試環境中註冊0.0.0.0。使用以下命令來消除潛在的損壞的證書:
netsh http delete sslcert ipport=0.0.0.0:20001
關於從PowerShell調用外部程序的有用信息「正確的方式」在這裏... http:// edgylogic。com/blog/powershell-and-external-commands-done-right/ – andyb 2014-03-08 21:42:36
我意識到這一切都是因爲我的ORDERING!你必須在`certhash`之前加上'appid`。它愚蠢。 – Alexandru 2015-07-09 15:14:58
對我來說,windows cert cert manager的複製粘貼certhash在前面有一些奇怪的字符 - 確保它只是字母數字,並且沒有奇怪的前導字符。 – 2015-09-24 14:32:23