Ssl API响应中的数字证书

Ssl API响应中的数字证书,ssl,ssl-certificate,Ssl,Ssl Certificate,我正在为我的nodejsapi开发一种身份验证方法。 我正在使用TLS证书验证连接到API服务器的客户端。 我的问题是:我们可以有一种方法将响应验证回客户端吗?我们是否可以使用证书将其发送到(服务器到客户端) 例如:当我们从客户机调用API时,我们会发送带有经过身份验证的请求的证书,如果发现请求有效,服务器会发送响应,我们是否可以反之亦然,发送一个证书作为响应,并让客户端验证证书。整个TLS协议和证书都是基于您信任服务器这一理念构建的。也就是说,在建立TLS连接期间,服务器提供了一个证书,客户端

我正在为我的nodejsapi开发一种身份验证方法。 我正在使用TLS证书验证连接到API服务器的客户端。 我的问题是:我们可以有一种方法将响应验证回客户端吗?我们是否可以使用证书将其发送到(服务器到客户端)


例如:当我们从客户机调用API时,我们会发送带有经过身份验证的请求的证书,如果发现请求有效,服务器会发送响应,我们是否可以反之亦然,发送一个证书作为响应,并让客户端验证证书。

整个
TLS
协议和证书都是基于您信任服务器这一理念构建的。也就是说,在建立
TLS
连接期间,服务器提供了一个证书,客户端可以通过检查它是否信任颁发证书的CA来验证该证书

现在,虽然通常情况下是这样,但您可以使用库,通过不检查证书或检查而继续来绕过此操作,因此您必须再次检查情况并非如此。浏览器会自动执行此操作

如果您单击Chrome URL左侧的绿色“安全”按钮,例如,您可以单击此处的“证书”,查看服务器提供的证书。如果它是绿色的,那么它是值得信任的,一切都很好


另外,客户机和服务器都不会在每次请求/响应时来回发送证书。在建立称为TLS握手的连接期间,它们只执行一次。这是一个相对昂贵的过程,因此您最好保持连接。

使用TLS时,您已经这样做了-客户端身份验证是可选的,但服务器身份验证是强制性的-除非我误解了您的场景。TLS连接中的每一方都可以使用它提供的证书对另一个端点进行身份验证。然后,您将面临如何管理证书的整个问题:要么明确地分发证书并进行匹配,要么基于可信CA列表,接受任何给定可信CA生成的任何证书。