繁体   English   中英

自托管C#SSL Web服务器,无需管理员权限

[英]Self hosted C# SSL web server without requiring admin rights

我们有自托管的C#WCF服务,通过HTTPS提供rest API。

问题:为SSL配置证书需要管理员权限。 我假设它与WCF有关,取决于http.sys的http / https处理。 该服务旨在部署在客户环境中。 如果它可以在不需要管理员权限的情况下运行,那就太好了。

看起来WCF依赖于http.sys,
我可以在没有证书存储且不使用netsh http add sslcert的情况下在WCF中自行托管HTTPS服务吗?

想知道是否存在支持SSL并且不需要管理员权限的任何其他嵌入式Web服务器解决方案?

到目前为止检查,
http://nancyfx.org/
https://github.com/pvginkel/NHttp

两者似乎都不支持SSL。

大多数Windows托管的Web堆栈依赖于HTTP Server API,它是围绕内核HTTP堆栈(也称为HTTP.sys)的API。 .Net HttpListener类也是如此(与WCF相同,OWIN自托管asp.Net等依赖它)。

只是确保,你知道你可以授权你运行应用程序的身份绑定到HTTPS URL,即使它没有作为管理员帐户运行,对吧? 如果您可以在安装阶段获得管理员权限,这可以解决您的问题? (假设你已经检查过了)你可以在我写的关于这里的博客文章中阅读更多内容

要在原始套接字上构建一个http堆栈的努力将是一个很大的努力,并没有多少收益,所以.Net我怀疑你会发现类似的东西。

除非,它希望是跨平台的。
任何基于Java的Web服务器都可能就是这样,使用JVM的http栈并依靠java密钥库为SSL提供所需的证书。 (使其在不同的操作系统中可移植)
如果你想去java我相信你可以找到很多这样的网络服务器。

如果您想尝试使用CGI绑定到Web服务器,请查看mongoose (从未使用它说实话)。

想到的另一个选择是使用像Stunnel这样的ssl代理站在Web服务器前面。 它将使用非Windows证书存储区执行SSL部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM