Tomcat java servlet 在 Apple Pay 中验证商家

Posted

技术标签:

【中文标题】Tomcat java servlet 在 Apple Pay 中验证商家【英文标题】:Tomcat java servlet to validate merchant in Apple Pay 【发布时间】:2018-04-18 19:50:55 【问题描述】:

是否可以使用Tomcat java servlet 来验证商家?

如果是这样,我如何使用 httpclient 发送 SSL 证书和 SSL 密钥 pem 文件内容?

这是 php 中的代码,但我们使用的是 Tomcat 服务器。

$data = '"merchantIdentifier":"merchant.com.blah.shop", "domainName":"shop.blah.com", "displayName":"Blah Shop"';  

curl_setopt($ch, CURLOPT_URL, $validation_url);  
curl_setopt($ch, CURLOPT_SSLCERT, PRODUCTION_CERTIFICATE_PATH);  
curl_setopt($ch, CURLOPT_SSLKEY, PRODUCTION_CERTIFICATE_KEY);  
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  

【问题讨论】:

【参考方案1】:

首先,您永远不应该通过网络将您的私钥文件发送给任何人,即使是苹果。您的 PHP 示例代码没有将其发送到任何地方,而是使用它来签署请求。

从 Tomcat 的角度来看,您需要一个 Java 程序来通过 Internet 发送 HTTP 请求(使用 SSL 证书和用于签署请求的密钥)。您可以使用不同的库,例如 Apache HttpComponents 来归档它。详情请见detailed answer by @eis。

【讨论】:

谢谢。我会看看 HttpComponents。 这里还是有点糊涂。我查看了@eis 的详细信息,它显示的只是导入密钥的方法。证书本身呢?如何在我的应用发送的请求中包含证书?我认为 Apple Pay 期望密钥和证书是分开的,而不是合并并作为密钥库发送?? @JoeSmith:Java 架构 (JCA) 将私钥和证书(或通常链式)一起存储在密钥库中,但它通过发送证书/链部分和在本地使用私钥部分。 (curl 使用单独的文件但实现相同的协议。)

以上是关于Tomcat java servlet 在 Apple Pay 中验证商家的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat下载安装经验教程

一步一个脚印Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet的使用

在 servlet 重定向之前使用过滤器修改响应 URL (Java/Tomcat)

如何在 java 中为 Servlet 上下文添加别名?

java 一个tomcat上可以装几个网站?几个war?几个servlet?

java-tomcat启动后跳转servlet404