netsh命令想要一个appid(见这里):
netsh http add sslcert ipport=0.0.0.0:8000 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我还无法理解我应该如何知道GUID netsh要我提供的内容.任何提示?
我使用WCF创建了一个WebService.我正在进行自托管,我想启用HTTPS.根据我对此的理解,我需要创建一个证书并绑定到我想要使用的端口.
以下是我为处理此问题所采取的步骤:
从签名的根证书颁发机构创建临时服务证书
试图将证书绑定到端口号(在这种情况下为443)
步骤4的结果是以下错误:
SSL证书添加失败,错误1312
指定的登录会话不存在.它可能已经被终止了.
有没有人知道为什么我可能会收到此错误?
我已按照SSL中的说明使用自托管WCF服务.当我尝试使用netsh在Windows 7上绑定证书时,如如何:使用SSL证书配置端口中所述.,它失败如下.
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) 我没有使用IIS,甚至没有安装在这台计算机上.我的控制台托管的WCF REST服务中也没有任何app.config文件或web.config文件.但我想尝试在主机控制台应用程序上运行HTTPS:
class Program
{
static void Main(string[] args)
{
string baseAddress = "http://" + Environment.MachineName + ":8000/Service";
ServiceHost host = new ServiceHost(typeof(Service), new Uri(baseAddress));
//WebHttpBinding binding = new WebHttpBinding();
//binding.Security.Mode = WebHttpSecurityMode.Transport;
host.AddServiceEndpoint(typeof(IService), new WebHttpBinding(), "").Behaviors.Add(new WebHttpBehavior());
host.Open();
Console.WriteLine("Host opened");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
有没有办法让我的服务在HTTPS中运行?
我已经通过 C# (bouncycastle) 创建了自签名 SSL 证书。它显示在本地计算机/个人商店中,看起来与 Microsoft 现有的本地主机证书完全相同。如果我显示属性,它会说:
SSL 证书添加失败,错误:1312 指定的登录会话不存在。它可能已经被终止了。
但是,如果我想通过 netsh 注册此证书,则会收到错误:
netsh.exe http add sslcert ipport=0.0.0.0:{0} certhash={1} appid={2}
Run Code Online (Sandbox Code Playgroud)
app-id 是在 assemblyinfo.cs 中指定的 GUID。certhash是来自证书属性页的哈希值。
我在许多博客文章中发现了导致这种情况发生的几个原因:
他们都没有取得成功......