将自签名 ssl 证书绑定到端口失败
bind self signed ssl certificate to port failed
我希望将自签名证书绑定到端口以开发我的自托管 wcf 应用程序,但我总是失败。
我完成的步骤:
创建了根证书:
makecert.exe -a SHA256 -n "CN=DemoCA" -r -sv TempDemoCA.pvk TempDemoCA.cer
创建了客户端证书:
makecert.exe -a SHA256 -sk Demo -iv TempDemoCA.pvk -n "CN=DemoTempCert" -ic TempDemoCA.cer DemoTemp.cer -sr currentuser -ss My -sky exchange
使用mmc.exe(作为管理员)将根证书导入本地计算机证书
将带有 mmc.exe 的客户端证书导入本地计算机证书
将私钥添加到客户端证书,因为它没有钥匙图标:
certutil -repairstore my "MyKeyHash"
添加了防火墙条目:
netsh http add urlacl url=https://+:9003/ user=domain\user listen=yes
试图将证书绑定到端口(作为管理员):
netsh http add sslcert ipport=0.0.0.0:9003 certhash=MyCertHash appid={NewGuid} clientcertnegotiation=enable
但是第 7 步失败,出现错误 1312。
SSL Certificate add failed, Error 1312
A specified logon session does not exist. It may already have been terminated.
我通过谷歌搜索发现的所有内容都没有解决我的问题,例如:
- 通过 mmc 导入而不是 certmgr.msc
- 创建一个新证书
- 知识库修补程序
有趣的事实:将现有 "localhost" 客户端证书绑定到端口工作正常。
我做错了什么?
提前致谢。
解决方案是公用名称必须与服务使用的域相同。在我的例子中,localhost 成功了。
我希望将自签名证书绑定到端口以开发我的自托管 wcf 应用程序,但我总是失败。
我完成的步骤:
创建了根证书:
makecert.exe -a SHA256 -n "CN=DemoCA" -r -sv TempDemoCA.pvk TempDemoCA.cer
创建了客户端证书:
makecert.exe -a SHA256 -sk Demo -iv TempDemoCA.pvk -n "CN=DemoTempCert" -ic TempDemoCA.cer DemoTemp.cer -sr currentuser -ss My -sky exchange
使用mmc.exe(作为管理员)将根证书导入本地计算机证书
将带有 mmc.exe 的客户端证书导入本地计算机证书
将私钥添加到客户端证书,因为它没有钥匙图标:
certutil -repairstore my "MyKeyHash"
添加了防火墙条目:
netsh http add urlacl url=https://+:9003/ user=domain\user listen=yes
试图将证书绑定到端口(作为管理员):
netsh http add sslcert ipport=0.0.0.0:9003 certhash=MyCertHash appid={NewGuid} clientcertnegotiation=enable
但是第 7 步失败,出现错误 1312。
SSL Certificate add failed, Error 1312
A specified logon session does not exist. It may already have been terminated.
我通过谷歌搜索发现的所有内容都没有解决我的问题,例如: - 通过 mmc 导入而不是 certmgr.msc - 创建一个新证书 - 知识库修补程序
有趣的事实:将现有 "localhost" 客户端证书绑定到端口工作正常。
我做错了什么? 提前致谢。
解决方案是公用名称必须与服务使用的域相同。在我的例子中,localhost 成功了。