首页 文章

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

提问于
浏览
4

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

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

看起来WCF依赖于http.sys,
Can I self-host an HTTPS service in WCF without the certificate store and without using netsh http add sslcert?

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

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

两者似乎都不支持SSL .

1 回答

  • 1

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

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

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

    除非,它希望是跨平台的 .
    任何基于Java的Web服务器都可能就是这样,使用JVM 's http stack and relying on a java keystore to provide the required certificates for the SSL. (To keep it portable across different OS' s)
    如果你想去java我相信你可以找到很多这样的网络服务器 .

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

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

相关问题