PHPで暗号化されたSOAPリクエストを作成できません。ドキュメントごとに、私は各リクエストをペイメントゲートウェイに暗号化しました。私はCSR &を生成し、それを証明書の権限に送りました。彼らは私にドメイン証明書& CA証明書を送り返しました。最大の問題は、ドキュメンテーションがPHP用ではないということです。文書ごとのように:私はhelper class from Gitが見つかりましたが、私は次のエラーを取得する接続しようとするたびに、長い時間を検索した後PHPで各SOAPリクエストを暗号化する方法
The web service is protected with WS-Security Sign and encryption policy
:
一般的なセキュリティエラー(証明書が復号化のために見つかりませんでした(KEYID )
FaultCode : wsse:InvalidSecurity
次のように)私は、SSLヘッダを設定しようとした:
$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のリンクを参照してください)?
'cer' /' key'ファイル/パスは存在しますか?あなたはそれを見てみましたか?http://stackoverflow.com/questions/7147988/creating-a-php-soap-request-with-a-certificate –
@GabrielHemingはい。ファイルが存在する – Shan
あなたの鍵と証明書への完全なパスを定義する必要があります。そのヘルパークラスは、どのフォルダにあるのか推測しません。 – Capsule