使用netsh,将SSL证书绑定到端口号失败

Win*_*tet 33 wcf-binding ssl-certificate windows-7 netsh

我已按照SSL中的说明使用自托管WCF服务.当我尝试使用netsh在Windows 7上绑定证书时,如如何:使用SSL证书配置端口中所述.,它失败如下.

在Windows PowerShell中

PS C:\> netsh http add sslcert ipport=0.0.0.0:8732 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF}
Bad numeric constant: 224.
At line:1 char:104
+ netsh http add sslcert ipport=0.0.0.0:8732 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={001 <<<< 12233-4455-6677-8899-AABBCCDDEEFF}
+ CategoryInfo          : ParserError: (224:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : BadNumericConstant
Run Code Online (Sandbox Code Playgroud)

在命令提示符下

C:\>netsh http add sslcert ipport=0.0.0.0:8732 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF}

SSL Certificate add failed, Error: 1312
A specified logon session does not exist. It may already have been terminated.
Run Code Online (Sandbox Code Playgroud)

小智 29

我永远与之斗争,让我的IIS Express正确地进行SSL.事实证明,我的证书位于受信任的根证书颁发机构存储中,而不是个人证书存储中.这对我有用:

  1. 确保您的证书位于"证书(本地计算机)/个人/证书"中
  2. netsh http add sslcert ipport=0.0.0.0:8732 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid='{00112233-4455-6677-8899-AABBCCDDEEFF}'
  3. SSL证书已成功添加
  4. 使用MMC并将证书拖到您想要的任何位置.


小智 15

我在端口绑定中找到了4个可能的错误原因1312:

  • SSL证书已损坏 - 您需要从证书存储区中删除并重新添加.
  • SSL证书缺少私钥 - 您需要从证书存储区删除并重新添加完整的公共/私有证书,或者将私钥附加到您的证书.
  • 如果在SP1之前版本的2012R2上安装,则可能需要KB 981506.
  • 您可能已将SSL证书添加到用户存储,而不是本地计算机证书存储 - 从用户存储中删除并添加到计算机存储.

  • 真的我有同样的错误并用你的第二个建议解决了它,我删除它然后导入**.pfx**,其中包含公钥和私钥. (3认同)

Win*_*tet 12

错误的来源是我直接从signroot.cert的证书文件中获取了ThumbPrint,该文件是从创建"受信任的根证书颁发机构"所需的第一个makecert命令创建的,该命令再次用于真正创建(并安装) )第二个makecert命令中的self-sigend可信证书.

第二个makecert命令还将创建的证书安装在"证书(本地计算机) - >个人 - >证书"节点中.必须再次刷新当前打开的MMC以查看"localhost"证书,并且需要从此证书中获取ThumbPrint,而不是从signroot.cert获取.

如果仍然不是这样,可能需要从M $安装此修补程序. http://support.microsoft.com/kb/981506

参考:http://social.technet.microsoft.com/Forums/en/winservergen/thread/68452008-a89b-40ba-9927-472efcfafc99


小智 8

我们遇到了同样的错误,经过长时间的努力,我们意识到netsh没有浏览所有本地机器商店来查找"certhash"参数标识的证书.默认情况下,它仅搜索"个人"商店中的证书.

由于我们的证书不在"个人"商店中,而是在"受信任的根证书颁发机构"商店中,因此通过在netsh命令中添加"certstorename"参数来解决问题:

C:\>netsh http add sslcert ipport=0.0.0.0:8732 certstorename=AuthRoot certhash=...  
Run Code Online (Sandbox Code Playgroud)