【发布时间】:2021-10-16 17:22:49
【问题描述】:
我需要为我的 api 网关使用 SSL 证书并在 docker 上运行它。我想为 5000 端口使用 ssl 证书。由于我所有使用端口的服务都以 5000 开头,所以我只为网关应用 SSL。
假设域是 api.fabrikam.com:5000 并且 docker 容器开始如下:
docker run -e ASPNETCORE_ENVIRONMENT='Production' -d -p 5000:5000 123456.dkr.ecr.eu-central-1.amazonaws.com/gateway:latest
还有在 CreateWebHostBuilder 方法中;
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((host, config) => {
config.AddJsonFile($"configuration.{host.HostingEnvironment.EnvironmentName}.json");
})
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000); // http:localhost:5000
options.Listen(IPAddress.Any, 80); // http:*:80
options.Listen(IPAddress.Loopback, 443, listenOptions =>
{
listenOptions.UseHttps("api.fabrikam.com.pfx", "password");
});
})
.UseStartup<Startup>();
但是当我打电话给https://api.fabrikam.com:5000 时,一点运气都没有。 任何帮助都会很棒。 谢谢。
【问题讨论】:
-
5000 是 HTTP 端口。 HTTPS 在 5001 上运行
标签: c# docker ssl asp.net-core-webapi kestrel-http-server