如何从 HTTPS 请求中获取证书?

How can I get Certificate from HTTPS request?

我正在使用 Google Assistant / Dialogflow。我想检查所有传入的请求。我需要获取并验证证书。 我尝试从 header 获取证书或从 HttpRequestServlet 获取参数,但什么也得不到。 我该怎么做?

我假设您想在 Java webhook 服务器中验证传入的 Dialogflow 请求。

看看 this. 你应该使用双向 TLS 身份验证:

要请求 mTLS:

  • 准备您的 webhook HTTPS 服务器以在 TLS 握手期间请求客户端证书。
  • 您的 webhook 服务器应在收到客户端证书时对其进行验证。
  • 为您的webhook服务器安装证书链,客户端和服务器可以相互信任。您应该使用 Google Trust Services CA 1O1 (GTS CA 1O1)。 GTS CA 1O1 使用 GlobalSign R2 根 (GS Root R2),它由 Google Trust Services 拥有和控制。您可以从以下网址下载:https://pki.goog/repository/

该文档还提供了一个demo about how to do this on NodeJS server。在 Java 中,这取决于您使用的是什么,但过程是相同的。因此,请查看这些关于在 Java 服务器上设置 mTLS 的链接,您可以使用 NodeJS 服务器演示作为参考。