我正在VS.NET 2017中处理一堆微服务,所有这些都用启用SSL的ASP.NET Core(2.1)编写。我的项目就是这样 -客户端项目(运行Angular) -API网关项目(使用Ocelot) -微服务 -微服务 -微服务 -IdentityServer4
所有项目都运行asp.net core 2.1,并使用自签名证书启用了SSL。现在,当我运行所有本地主机时,一切都很好。但是,如果我开始在容器中运行东西,则证书开始成为问题。
只要我调用网关微服务,我就可以使用身份服务器,总线登录,它显示:
根据验证步骤,远程证书无效
我发现在docker中运行时证书的CN名称(或DNS名称)与主机名不匹配,因此我创建了一个新证书,其中包含DNS名称localhost,我的计算机的IP和所有主机名。 docker容器。
有一个更改,系统可以识别“多个主机名”,但是证书仍然无效。这给我留下了一个问题,即由于证书问题,微服务基本上不能相互通信。这听起来对某人熟悉吗?我该怎么办?
由于评论mjwillis而更新 我用5个dns名称(本地主机,工作站的ip,keeszapi,keeszconnect和keeszgame)创建了一个证书。 keeszapi,keeszconnect和keeszgame是docker容器的名称,因此是docker network 中的主机名。
为什么我不使用“让我们加密”,主要是因为我对这些工具不熟悉。
-等等,现在我正在阅读有关加密的更多信息...它尚未投入生产,所有内容都在调试模式下运行,这就是为什么:)