使用 HTTPS (SSL) 分发带有嵌入式 (OWIN) 网络服务器的应用程序

Distribute an application with an embedded (OWIN) webserver with HTTPS (SSL)

我们开发了一个在本地主机上运行嵌入式 (OWIN) 网络服务器的 .NET 4.5 应用程序。

它的某些功能要求我们从 Internet 上的 public 网站向该网络服务器发出 AJAX 请求。 问题是该站点使用 HTTPS。 Chrome 现在抱怨加载了不安全的内容(这是正确的)。

要解决这个问题,我们需要让我们的嵌入式网络服务器使用 SSL,这样就没有 HTTPS-HTTP 流量。网上有很多创建自签名证书并将其绑定到端口的示例,但我们的应用程序也需要分发。

是否可以(以及如何)为本地主机 (OWIN) 创建实际上可再分发的自签名证书?

我知道这意味着连接不受信任,因为它没有经过 SSL 权威机构的验证,但我们只是尝试使用它,以便本地主机和 public网站。

我们最终解决了这个问题;

我们正在使用 SignalR,我们 distribute/install 专门为此目的购买的客户端证书。 因此,我们的安装程序同时安装了应用程序和证书,并将其绑定到 OWIN 服务器。我们通过此博客获得了有关如何执行此操作的大部分信息:

https://weblog.west-wind.com/posts/2013/Sep/23/Hosting-SignalR-under-SSLhttps

它包含有关如何使其工作的详细分步说明。

编辑:

使用netsh 命令将证书绑定到端口。我们使用 InnoSetup 为我们执行此操作。 Info on how to do this is here.

请注意,我们使用的是单个证书,该命令需要证书密钥才能绑定它。 这可能是使用多个(不同)证书的问题,我不确定是否可以从证书中提取密钥以动态发出不同证书的命令。对于单个证书,我们只有一个密钥,并且是硬编码的。

或许可以提取密钥,this is some info that might help in that regard.