2012-12-03 13 views
9

POST'tan bazı verileri PHP kullanarak site A'dan B sitesine veriyorum. Site A'nın ticari bir SSL sertifikası var. B sitesi kendinden imzalı bir sertifikaya sahip olacak. Bu yapılabilir mi? Değilse, kısıtlamaları atlamak için ayarlayabileceğim PHP (veya Apache) içinde herhangi bir yapılandırma seçeneği var mı?POST isteği kendinden imzalı bir sertifikaya sahip

+0

Neden yapılıyorsa, ilk önce denemiyorsunuz? – samayo

+0

Uygulama tamamlanmadığından ve B sitesi henüz ayarlanmadığından ve benim kontrolüm altında olmadığı için – Aaron

cevap

18

Muhtemelen A sunucusunda curl kullanıyorsunuz? Sertifika doğrulama işlemini devre dışı bırakmak için, kendinden imzalı sertifikaları etkinleştirecek bir çift seçenek var. Bağlantı hala şifreli olacak, ancak bu sunucu B güven mümkün olmayacaktır gerçekten sunucu B IS:

curlopt_ssl_verifypeer (checking the CA auth chain) 
curlopt_ssl_verifyhost (hostname/certname match checks) 

Örnek PHP kodu:

$ch = curl_init("https://example.com/example/path"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
$response = curl_exec($ch); 
+5

PHP'yi (veya genel olarak istemci) yalnızca * özel * kendinden imzalı bir sertifikayı kabul edecek şekilde yapılandırmanın herhangi bir yolu var mı? Görünüşe göre bu, sertifikayı doğrulamaktan kesinlikle daha güvenli olur. –

2

Yapılabilir. PHP'de, POST gerçekleştirmek için cURL kullanıyorsanız, yalnızca CURLOPT_SSL_VERIFYPEER ve CURLOPT_SSL_VERIFYHOST seçeneklerini yanlış olarak ayarlamanız gerekir, böylece sertifika kendiliğinden imzalandığından başarısız olmaz.

2

tarayıcıyı soruyorsan Verileri POST etmek için, kullanıcı sertifikanın güvenilir olmadığına dair normal uyarıları alır.

PHP kodunuzdan POST gerçekleştirmek için cURL kullanıyorsanız, cURL'nin SSL denetimlerini devre dışı bırakmak istersiniz. Bir related question göre,

Sen FALSE için CURLOPT_SSL_VERIFYPEER ve CURLOPT_SSL_VERIFYHOST ayarlamak gerekir. Bu> iki ana çekmeyi devre dışı bırakmalıdır. İkisi de gerekli olmayabilir, ama bu en azından gitmene gerek.