服务器作为服务在 Windows 10 上运行,OWIN 自托管,WebAPI 端点建立 SSL 连接而无需配置私钥

服务器作为服务在 Windows 10 上运行,OWIN 自托管,WebAPI 端点建立 SSL 连接而无需配置私钥

我已经创建了一个在 Windows 10 上运行的原型应用程序,该应用程序与作为不同系统上的服务运行的服务器(标题中描述)进行通信,并成功使 SSL 运行,但我遗漏了一些东西,因为我似乎从未生成任何密钥。我只是自学了如何使用 PowerShell 使用 New-SelfSignedCertificate 创建自签名证书(所以请耐心等待),但我对它为什么有效知之甚少。从我非常有限的理解来看,服务器上的私钥是 SSL 运行的绝对必要条件,而且我从未将私钥与我的证书关联……但它正在运行,我想我是在自欺欺人。

我所做的就是使用 创建证书New-SelfSignedCertificate -Subject "CN=My Server Name" 然后使用 添加绑定netsh http add sslcert certhash=<the thumbprint> appid={the app id} 并使用 添加服务预订netsh http add urlacl url="https://+:<my port number>/" user='NT AUTHORITY\LocalService'

这一切都有效,但我不确定我是否理解了,因为我从未配置过私钥。我知道它必须以某种方式扩展以使其更安全,因为那里的每个教程都谈到使证书值得信赖并为证书分配私钥……但我没有做任何事,它仍然似乎有效。当然,客户端不是 Web 浏览器,并且永远不会关心服务器的真实性,因为此特定应用程序将在何种环境中运行(它是在实验室中将科学组件连接在一起,并且几乎没有暴露在网络之外)。

我在这里遗漏了什么?Windows 10 是否提供了私钥?如果我不需要指定这些东西,它怎么能真正加密呢?我也从未将证书移动到任何类型的受信任存储区,因为坦率地说,这似乎没有必要,因为客户端只是一个专有的前端应用程序。

相关内容