【问题标题】:Self hosted C# SSL web server without requiring admin rights自托管 C# SSL Web 服务器,无需管理员权限
【发布时间】:2014-01-24 19:57:12
【问题描述】:

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

问题:为 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。

【问题讨论】:

  • 我们的 SecureBlackbox 有 HTTPS 服务器组件,但它的级别很低(即您需要编写额外的代码才能使用它)。
  • Eugene,正在寻找一种能够提供开箱即用的 Web 服务器功能的解决方案。

标签: c# wcf ssl https


【解决方案1】:

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

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

在原始套接字之上构建 http 堆栈将是一项巨大的努力,而且收获甚微,所以在 .Net 周围,我怀疑你会发现类似的东西。

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

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

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

【讨论】:

    猜你喜欢
    • 2011-06-07
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    相关资源
    最近更新 更多