2010-12-14 100 views
0

有一个支付服务器。我可以通过cURL成功发送数据,并设置适当的密钥,证书和支付服务器成功回复。但现在我需要重定向到该服务器,以便客户端可以输入信用卡数据。我如何进行重定向?如何重定向到https,需要某些证书才能访问

是否有可能将key/certificate添加为函数头中标题的一部分(“Location:https:// ....”); ?

+0

您确定支付系统的工作方式是?您是否阅读过文档? – 2010-12-14 11:05:11

+0

是的。如果我在浏览器中安装证书并输入重定向地址,我会得到回应。所以我必须包含证书 – banesto 2010-12-14 11:22:31

回答

0

即使您可以将证书与重定向一起发送,浏览器仍然需要验证它。但你不能。不可能。你必须发送一个定期的重定向。由于这是一个https地址,浏览器将首先向目标主机请求证书并验证它(包括必要的用户干预)。结果是一样的。

没有办法规避弹出对话框,要求用户接受/信任或拒绝证书。 HTTPS旨在确保“合理防护窃听者和中间人攻击,前提是使用了足够的密码套件并且服务器证书已经过验证并且可信。” (从维基百科引用)

+0

ok,那么我需要在重定向之前在浏览器上安装证书?或者在服务器上安装此证书,以便在重定向期间应用此证书? – banesto 2010-12-14 14:01:06

+0

好的,另一方回答说,对于这项任务他们有地址,不需要认证,所以这个问题的紧迫性降低,但理论上它仍然是有趣的,它是如何完成的。也许它可以以不同的方式解决 - 使用某种cURL身份验证,并在刚刚完成后重定向到指定的地址? – banesto 2010-12-14 14:39:56

+0

@banesto:如果您没有事先安装证书,并且浏览器被配置为不能自动接受它,用户将会看到已知的对话框“您信任并且应该记住您的决定?”。你为什么要避免这种情况?在你的第二条评论中:你可以编写一个脚本,充当用户和你的提供者之间的代理。但是,为什么呢?您的代理和提供者之间的连接将通过SSL进行保护,但如果您没有以相同的方式保护与客户端的连接,则会降低安全性。如果这样做,问题与不同的证书保持一致。 – rik 2010-12-14 14:55:25

0

除非提供者有一个非常奇怪的设置,我不认为你可以。有两个客户端连接到服务器 - 首先是使用客户端证书的PHP代码,那么您希望某个浏览器能够在没有客户端证书的情况下绑定到同一个会话?唯一的办法是,如果付款提供商发回代理认证令牌 - 如果他们这样做,他们会提供详细的文件。显然情况并非如此。

尽管您可以在服务器上代理数据,但我强烈建议您切换到另一个支付服务提供商,以便为您处理整个支付流程。

+0

感谢您的回复!切换不是一种选择,因为我特别为此付款服务器制作了演示店。 – banesto 2010-12-14 14:02:02

相关问题