如何确定是否已将证书绑定到端口

本文关键字:绑定 证书 何确定 是否 | 更新日期: 2023-09-27 18:26:53

我已经在一台机器上设置了一个OWIN自主机,我使用以下命令为特定端口注册了证书:

netsh http add sslcert ipport=0.0.0.0:8082 certhash=<cert_thumbprint_here> appid={00000000-0000-0000-0000-AABBCCDDEEFF}

我的OWIN主机已为此URL启动:

using (WebApp.Start<OwinStartup>(url: https://my-pc:8082))
{
    // do stuff
}

我想知道的是,C#是否可以确定证书是否绑定到此端口。基本上,我想检查我的应用程序中是否在用户的服务器上执行了netsh命令,因为OWIN在https上运行得很好,但没有人能够连接。

如何确定是否已将证书绑定到端口

要查看绑定是否已完成,您需要检查该特定端口发生了什么。
要做到这一点,您需要在CMD中执行如下命令:

netstat -o -n -a | find /c "0.0.0.0:8082"

此命令将在特定IP(0.0.0.0)和端口(8082)上不提供任何活动套接字

这是您可以使用C#执行的CMD,如下所示:

            try
            {
                var configProc = new ProcessStartInfo();
                string cmdConfig = @"netstat -o -n -a | find /c "0.0.0.0:8082";
                configProc.UseShellExecute = true;
                configProc.WorkingDirectory = @"C:'Windows'System32";
                configProc.FileName = @"C:'Windows'System32'cmd.exe";
                configProc.Verb = "runas";
                configProc.Arguments = "/c " + cmdConfig;
                configProc.WindowStyle = ProcessWindowStyle.Hidden;
                Process.Start(configProc);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }