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+MySQL为自己的APP打造服务器(2-1)Servlet的使用
在 servlet 重定向之前使用过滤器修改响应 URL (Java/Tomcat)