使用Nowin的美妙之处在于,我不必使用各种Windows命令来设置简单的Web服务器。根据Nowin自述文件,我可以使用以下行配置SSL
builder.SetCertificate(new X509Certificate2("certificate.pfx", "password"));
然而,当使用Nancy时,我似乎无法访问此Server构建器类。一切似乎都在幕后神奇地发生。
如何将证书传递给Nowin?
答案 0 :(得分:5)
确保安装了Nancy.Owin软件包。
使用此类代码启动服务器:
using System;
using System.Net;
using System.Threading.Tasks;
using Nancy.Owin;
using Nowin;
public class Program
{
static void Main(string[] args)
{
var myNancyAppFunc = NancyMiddleware.UseNancy()(NancyOptions options =>
{
// Modify Nancy options if desired;
return Task.FromResult(0);
});
using (var server = ServerBuilder.New()
.SetOwinApp(myNancyAppFunc)
.SetEndPoint(new IPEndPoint(IPAddress.Any, 8080))
.SetCertificate(new X509Certificate2("certificate.pfx", "password"))
.Build()
)
{
server.Start();
Console.WriteLine("Running on 8080");
Console.ReadLine();
}
}
}
答案 1 :(得分:0)
我认为您应该遵循本文中描述的方式:https://msdn.microsoft.com/en-us/magazine/dn451439.aspx 首先,您根据Nowin文档创建Web服务器,然后将Nancy添加为管道组件。我用NowingSample(来自Nowin包)测试了这种方式并且它可以工作。
答案 2 :(得分:0)
如果您查看this document,则说明以下内容:
如果主持人发送它,它就会在那里。
如果您使用IIS作为主机。您需要执行相同的config as with Aspnet。并且您需要一个支持ClientCertificate的OWIN Aspnet主机。 OWIN demo in Nancy中的那个。 @prabirshrestha之后的那个也是。
在OWIN演示中,选中this line:
if (request.ClientCertificate != null && request.ClientCertificate.Certificate.Length != 0)
{
env[OwinConstants.ClientCertificate] = new X509Certificate(request.ClientCertificate.Certificate);
}
希望它对你有所帮助,祝你好运。