gpt4 book ai didi

php - 如何在 php 中加密每个 soap 请求

转载 作者:可可西里 更新时间:2023-10-31 22:14:46 25 4
gpt4 key购买 nike

我无法在 PHP 中发出加密的 SOAP 请求。根据文档,我对支付网关的每个请求进行了加密。我生成了 CSR 并将其发送给证书颁发机构。他们将域证书和 CA 证书发回给我。最大的问题是该文档不适用于 PHP。根据文档:

The web service is protected with WS-Security Sign and encryption policy

找了半天找到一个helper class from Git但每当我尝试连接时,我都会收到以下错误:

一般安全错误(未找到用于解密的证书 (KeyId))

FaultCode : wsse:InvalidSecurity

我尝试按如下方式设置 SSL header :

$contextOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'cafile' => '../../certs/CA.cer',
'local_cert' => '../../certs/server.cer',
'local_pk' => '../../certs/private_key.key',
'verify_depth' => 0,
'allow_self_signed'=>true,
)
);

$sslContext = stream_context_create($contextOptions);

更新

我将键定义为:

define('PRIVATE_KEY', 'server_prvate_key.key');
define('CERT_FILE', 'domain_cert.cer');
define('SERVICE_CERT', 'CA.cer');

这个定义有什么问题吗(请看上面的 GIT 链接)?

最佳答案

您尝试过使用 curl 吗?

使用以下选项设置您的证书:

    curl_setopt($ch,CURLOPT_CAINFO, 'CA.cer' );
curl_setopt($ch,CURLOPT_SSLCERT, 'domain_cert.cer' );
curl_setopt($ch,CURLOPT_SSLKEY, 'server_prvate_key.key' );
curl_setopt($ch,CURLOPT_SSLCERTPASSWD, 'certificate_password' ); //if have

我使用 curl 加密连接到支付网关和其他服务,效果非常好。

关于php - 如何在 php 中加密每个 soap 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43758647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com