感谢您的阅读。
我建立了一个测试服务器,试图在其中使用 SSL/TLS 实现加密通信。通信是在 IIS(发布 asp.net 应用程序的 Web 服务器)和远程服务器上的 NGINX 之间进行的。
我在建立通信时遇到问题,因为当 NGINX 向 IIS 发送证书请求时,IIS 会向 NGINX 发送一个空证书。Windows 服务器中的中间证书正是 NGINX 所期望的。
我发现 ASP.NET 应用程序的 SSL 证书和中间证书之间存在断开的链接。
这是内部开发环境,因此应仅使用自分配证书建立 ssl/tls 通信。
现在,当我使用在线检查器检查 SSL 时,我收到以下快照。
我认为此处的断开链接可能是由于缺乏加密通信造成的。我不确定。
感谢您阅读我的帖子。
答案1
您的链没有中间体,因此无法发送。
通过 TLS,将传输最终实体证书(客户端或服务器身份验证,取决于发送者)以及任何中间体,但不会传输自颁发的根证书。
您的系统需要已经拥有根证书来确定信任,并且您的系统需要已经拥有构建链的方法,因此 TLS 实施者认为发送根证书会浪费网络上的字节。
* Root
|
-- * Intermediate 1
|
-- * Intermediate 2
|
-- * Intermediate 3
|
...
|
-- * End-Entity / Leaf
大多数现代基础设施是根 -> 一个中间体 -> 最终实体。