ssl - API响应中的数字证书

标签 ssl ssl-certificate

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

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

最佳答案

整个 TLS 协议(protocol)和证书已经围绕您信任服务器这一理念构建。 IE。服务器在建立TLS 连接期间提供证书,客户端可以通过检查它是否信任颁发证书的 CA 来验证该证书。

现在虽然这通常是这样,但您可以拥有允许通过不检查证书或检查但无论如何继续进行来绕过此问题的库,因此您必须仔细检查是否不是这种情况。浏览器会自动执行此操作。

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

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

关于ssl - API响应中的数字证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51894286/

相关文章:

ruby - Faraday::SSLError(SSL_connect 返回=1 errno=0 state=error: 证书验证失败(无法获取本地颁发者证书))

ssl - 在wireshark中,为什么显示的IP数据包总长度比在线捕获的帧少1个字节?

android - android 证书指纹 sha1 可以在 firebase 和 Google Place API 中使用吗?

asp.net - 你如何将http请求转发到https url

java - 如何从证书生成 keystore ?

.net - 有没有办法从 *.config 文件中声明性地设置 ServicePointManager 的 ServerCertificateValidationCallback 属性?

perl - 如何将证书安装到 Perl 证书库? 401未经授权

php - 无法识别本地发行人

c# - HTTPS 远程发布?

java - keystore 中的 SSL 证书不起作用