如何从 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 服务器演示作为参考。
- https://docs.oracle.com/cd/E19879-01/819-3669/6n5sg7ccd/index.html
- https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html#Installing_a_Certificate_from_a_Certificate_Authority
- https://discuss.aerospike.com/t/how-to-use-mutual-authentication-tls-mtls-in-java/7314
- https://www.baeldung.com/x-509-authentication-in-spring-security#Mutual
我正在使用 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 服务器演示作为参考。
- https://docs.oracle.com/cd/E19879-01/819-3669/6n5sg7ccd/index.html
- https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html#Installing_a_Certificate_from_a_Certificate_Authority
- https://discuss.aerospike.com/t/how-to-use-mutual-authentication-tls-mtls-in-java/7314
- https://www.baeldung.com/x-509-authentication-in-spring-security#Mutual