Зашифрованные подключения к веб-сервисам и сертификаты pk12 - PullRequest
0 голосов
/ 08 декабря 2008

Мне нужно сделать код для общения с веб-сервисом SOAP. К сожалению, я не могу подключиться к сервису, так как для этого требуется SSL-соединение, зашифрованное специальным сертификатом. Мне выдан сертификат pk12, который при установке в мою цепочку для ключей позволяет мне получить доступ к службе SOAP вручную через Safari, но я не могу получить соединение с веб-службами Cocoa :( У кого-нибудь есть идеи о том, что мне нужно сделать, чтобы заставить это работать?

Ответы [ 3 ]

0 голосов
/ 15 декабря 2008

Как правило, вы должны представить сертификат как часть вашего кода. Например, в C # вам нужно указать сертификат следующим образом:

using System.Security.Cryptography.X509Certificates;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //some code creating your soap client

        string cert_file = "C:\\prf_res.pem"; //You'll probably use the PEM format here, not the .p12 format
        X509Certificate cert = new X509Certificate(cert_file);
        soap_client.ClientCertificates.Add(cert);

        //now you're set!

В PHP это будет:

   $cert = "myCert.pem"; //notice it's in PEM format. 

   $client = new SoapClient($wsdl, array('local_cert' => $cert));

Чтобы сделать файл PEM из .p12, вы можете использовать:

OpenSSL> pkcs12 -in myCert.p12 -out myCert.pem -nodes -clcerts

0 голосов
/ 22 октября 2010
0 голосов
/ 08 декабря 2008

Я столкнулся с подобными проблемами. Это самозаверяющий сертификат? Если это так, вы можете найти все, что вам нужно сделать, это изменить настройки доверия в этом сертификате.

Существует еще один обходной путь, когда вы говорите, что этот сайт должен игнорировать настройки доверия, но это оставляет вас открытыми для атак «человек посередине». На SO есть еще одна тема на эту тему:

Objective-C / Cocoa Как принять неверный сертификат сервера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...