Fazendo chamada SOAP em PHP e configurando a versão SSL

Eu criei vários scripts trabalhando com WSDL externo. Encontrei um que tenho que integrar ao nosso sistema que não consigo trabalhar. Estou tentando há uma semana sem nenhum resultado.

O script falha ao criar o construtor já:

$client = new SoapClient("https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL");

Dá o erro:

PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL' : failed to load external entity "https://webtjener09.kred.no/TestWebservice/OppdragServiceSoapHttpPort?WSDL"

Eu tenho o openssl instalado e trabalhando com PHP e lembre-se de que já tenho outras chamadas SOAP de trabalho para outros WSDLs sobre SSL. Eu descobri que não consigo resolver isso com um certificado, pois ele já falha no construtor.

Mas: Tentei me conectar ao servidor remoto com a linha de comando openssl, e este comando também falhou:

openssl s_client -connect webtjener09.kred.no:443 -state

Mas tentei forçá-lo ao SSL3 e funcionou perfeitamente, assim:

openssl s_client -ssl3 -connect webtjener09.kred.no:443 -state

Então, isso me fez pensar que eu tinha que corresponder à versão SSL do servidor remoto. Para verificar novamente, também tentei fazer uma conexão cURL via PHP e ela falhou até adicionar a versão SSL forçada da seguinte forma:

curl_setopt($ch, CURLOPT_SSLVERSION, 3);

Adicionar CURLOPT_SSLVERSION à conexão cURL deixou tudo bem. E então a raiz da minha pergunta:

Como forço o construtor / chamada de sabão PHP a usar SSL3 também. Parece-me que essa teria que ser a solução. Mas não consegui descobrir como definir a função SOAP do PHP para usar apenas SSL3. Como as linhas de comando -openssl- e PHP cURL funcionam com SSL3 forçado, presumo que o mesmo aconteceria com a minha função SOAP?

Entradas, por favor?

(Usando o Ubuntu Linux, PHP 5.3.3)

questionAnswers(6)

yourAnswerToTheQuestion