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

问题描述

我正在使用Google Assistant / Dialogflow。我要检查所有传入的请求。我需要获取并验证证书。 我尝试从HttpRequestServlet的标头或参数中获取证书,但一无所获。 我该怎么办?

解决方法

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

看看this.,您应该使用Mutual TLS身份验证:

要请求mTLS:

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...