Как доверять удостоверению авто-подписанному SSL

Я разработал клиент в php используя Soap для webservice, разработанного в .net. Этот webservice использует https с авто-подписанным удостоверением и для доказательств я должен доверять удостоверению, не устанавливая этого.

Проблема состоит в том, что я всегда получаю эту ошибку:

SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://winsystemsintl.com:54904/PSAService.svc?wsdl' : failed to load external entity "https://winsystemsintl.com:54904/PSAService.svc?wsdl"

Это код вызова:

    $opts = [
        'ssl' => [
            // set some SSL/TLS specific options
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true,
        ],
         'http'=>[
            'user_agent' => 'PHPSoapClient'
        ]
    ];

    // Initialize Soap Client
    $this->client = new SoapClient($this->wsdl, array('soap_version' => SOAP_1_2,  'location' => 'https://winsystemsintl.com:54904/PSAService.svc','stream_context' => stream_context_create($opts), 'exceptions' => true, 'trace' => true));
0
задан 01.04.2017, 16:28
0 ответов

Унифицированный указатель ресурса https://winsystemsintl.com:54904/PSAService.svc?wsdl он не доступен. Возможно, что он, как покажи, что он не может читать определение. Проверь сначала, что унифицированный указатель ресурса webservice был доступным с твоего сервера.

Проверенная унифицированный указатель ресурса, ты мог бы пытаться выводя утверждение удостоверения из строя добавляя в $opts параметры 'verifypeer'=>false и 'verifyhost'=>false.

Я понимаю, что параметры SSL не касаются разряда WSDL, по крайней мере даже php 7. Я сделал какие-то доказательства и возможно была этой проблема. Ты был бы должен поддерживать выведенным из строя выбор утверждения удостоверений для потребления webservice, но относительно WSDL, он мог бы предлагать тебе не использовать это (null в первом параметре new SoapClient) или загружать это, пересылать это в сервер и использовать локальный файл.

1
ответ дан 03.12.2019, 17:54
  • 1
    Привет Габриэль, в браузерах Chrome и Firefox не возможно отображать wsdl, по крайней мере я не смог, но sí в Internet Explorer или Опере то, что показывает, что sí está я включаю. Спасибо также :) –  02.01.2017, 18:26
  • 2
    Я обновил ответ. –  03.01.2017, 00:25
  • 3
    Привет Габриэль, я существую añ adido pará метры и останься, не функционируя, однако я был способен получать wsdl посредством wget wget --secure-protocol=SSLv3 https://winsystemsintl.com:54904/PSAService.svc?wsdl --no-check-certificate, из-за которого tambié n существую añ adido pará метр 'ssl_method' => SOAP_SSL_METHOD_SSLv3, но без удачи. –  03.01.2017, 10:12
  • 4
    ¿ Versió n php? –  03.01.2017, 21:35
  • 5
    Я использую gentoo с php 5.6.23 –  04.01.2017, 10:10