首页 > 解决方案 > 信任由本地 CA 签名的证书来自 docker 内的 AspNetCore-Api

问题描述

我有以下场景:我想在 windows 主机上的 windows docker 容器中运行三个服务(仅限 Intranet)

  1. 一个 IdentityServer4

  2. Api(使用 IdSvr 进行授权)

  3. 一个 Web 客户端(使用 api 作为数据层,使用 IdSvr 进行授权)

所有这三个服务都使用 asp.netcore 2.1(以 microsoft/dotnet:2.1-aspnetcore-runtime 作为基础)运行,并使用由本地 CA 签名的证书。我现在面临的问题是我无法让 api 或 webclient 信任这些证书。

例如,如果我调用 api,身份验证中间件会尝试调用 IdSvr,但由于不受信任的 ssl 证书而在 GET '~/.well-known/openid-configuration' 上出现错误。

有没有办法让服务信任本地 CA 颁发的每个证书?我已经尝试过这种方式,但要么我做错了,要么就是没有成功。

恕我直言,一个 docker 容器必须有自己的 CertStore 否则不可能有可信的 https 连接。所以我的想法是从docker主机CertStore(信任CA)获取根证书到容器中,但我不知道如何实现这一点。

标签: dockerssl-certificateidentityserver4asp.net-core-2.1

解决方案


推荐阅读