2017-05-03 31 views
11

PHP'de şifrelenmiş bir SOAP isteği oluşturamıyorum. Dokümantasyona göre, her isteği ödeme ağ geçidine şifreledim. Sertifika yetkilisine CSR & gönderdim. Bana & CA sertifikası alan sertifikasını geri gönderdiler. En büyük sorun, belgelerin PHP için kullanılmamasıdır. Belgenin gereğince:php'de her bir sabun isteğinin şifrelenmesi nasıl yapılır?

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

uzun bir süre arama yaptıktan sonra buldum bir helper class from Git ama aşağıdaki hatayı alıyorum bağlanmayı deneyin her zaman:

Genel güvenlik hatası (Yok sertifikalar şifre çözme için bulunmuştur (KeyID)

FaultCode : wsse:InvalidSecurity

aşağıdaki gibi) ben SSL başlığı ayarlamak çalıştı:

$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); 
Bu tanımda (bakınız yukarıdaki GIT bağlantı) ile yanlış

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

şey:

Güncelleme

Ben anahtarları tanımlandığı?

+0

'cer' /' key' dosyaları/yolu var mı? Http://stackoverflow.com/questions/7147988/creating-a-php-soap-request-with-a-certificate –

+0

@GabrielHeming Evet'e bir göz attınız mı? Dosyalar var – Shan

+0

Anahtarınız ve sertifikalarınızın tam yolunu tanımlamanız gerekir, bu yardımcı sınıfın hangi klasörde olduğunu tahmin etmeyecekleri – Capsule

cevap

6

Kıvırmak kullanmayı denediniz mi?

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 

ben curl kullanarak ödeme ağ geçitleri ve diğer hizmetlere şifreli bağlantı kullanmak ve bir cazibe gibi çalışır:

sertifikanızı ayarlamak için aşağıdaki seçeneği kullanın.

+0

Kıvrılmayı denedim Ama yanlış uygulamadan sonra yanlış alıyorum, istisna kontrol ettikten sonra hatayı buldum: "wsse: InvalidSecurityMissing wsse: İstekte güvenlik başlığı", güvenlik başlığını nasıl ekleyeceğimi bilmiyorum! bir süre arandı ve kullanıcı adı ve şifrelerle bazı örnekler buldum – Shan

İlgili konular