ASP.NET Core 2-使用自定义域名和IISExpress开发SSL

use*_*430 4 asp.net-core-mvc asp.net-core asp.net-core-2.0

我希望能够使用自定义域和ssl而不是localhost在本地进行开发。

如何在VS解决方案而不是localhost中设置自定义域+ SSL?

Sve*_*vek 6

简单设置-使用服务器URL

如果要关联服务器以使用分配给服务器/ Web主机的所有IP地址,则可以执行以下操作:

var host = new WebHostBuilder()
    .UseUrls("http://*:80", "http://localhost")
    .UseKestrel()
    .UseIISIntegration()
    .Build();
Run Code Online (Sandbox Code Playgroud)

注意:如果不需要所有IP地址,则可以从更改http://*为特定IP地址,例如http://111.111.111.111。另外,端口不是必需的,但是我已使用它来确保答案的完整性。还需要注意的是,SSL无法与 UseUrls

您可以在此处的有关服务器URL的官方Microsoft文档中找到大量其他详细信息。


绑定SSL证书(仅Kestrel)-端点配置

请注意,不建议通过Kestrel(即使使用SSL)在公共端点上进行托管,您应该使用Nginx或IIS之类的反向代理。您可以在此处官方Microsoft文档中了解更多信息。

您没有提到是否使用Kestrel,但我假设您正在使用...在这种情况下,可以通过使用选项绑定套接字来轻松配置SSL证书。

这是使用Listen方法使用TCP套接字的示例:

public static void Main(string[] args)
{
    BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseKestrel(options =>
        {
            options.Listen(IPAddress.Loopback, 5000);
            options.Listen(IPAddress.Loopback, 5001, listenOptions =>
            {
                listenOptions.UseHttps("testCert.pfx", "testPassword");
            });
        })
        .UseIISIntegration() // <-- don't forget you will need this for IIS!
        .Build();
Run Code Online (Sandbox Code Playgroud)

注意:如果同时使用和Listen方法UseUrls,则Listen端点将覆盖UseUrls端点。

你可以找到更多的信息在这里,在微软官方文档。


配置IISExpress

使用GUI
可以右键单击项目,然后单击[属性]。

在此处输入图片说明

使用launchSettings.json。
您必须使用launchSettings.json此处进行配置,方法如下:

launchSettings.json

"iisSettings": {
  "windowsAuthentication": false,
  "anonymousAuthentication": true,
  "iisExpress": {
    "applicationUrl": "http://localhost:61471/",
    "sslPort": 44360
  }
},
"profiles": {
  "IIS Express": {
  "commandName": "IISExpress",
  "launchBrowser": true,
  "launchUrl": "https://localhost:44360",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
}
Run Code Online (Sandbox Code Playgroud)

配置IIS端点

如果使用IIS,则IIS的URL绑定将覆盖通过调用Listen或设置的所有绑定UseUrls。有关更多信息,请参见ASP.NET Core模块简介


MEM*_*ark 1

如果您对浏览器(或您使用的任何客户端)中的证书验证错误感到满意,则可以在主机文件中添加一个条目:

www.yourcustomdomain.com 127.0.0.1(或者::1如果您使用的是 IPv6)

然后使用自定义域在本地访问您的网站。

在 Windows 中,hosts 文件通常位于C:\Windows\System32\drivers\etc