Eu tenho tentado acessar este serviço REST em particular a partir de uma página PHP que criei em nosso servidor. Eu reduzi o problema até essas duas linhas. Então, minha página PHP fica assim:
<?php
$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json");
echo $response; ?>
A página morre na linha 2 com os seguintes erros:
- Aviso: file_get_contents (): A operação SSL falhou com o código 1. Mensagens de erro do OpenSSL: erro: 14090086: rotinas SSL: SSL3_GET_SERVER_CERTIFICATE: falha na verificação do certificado em ... php na linha 2
- Aviso: file_get_contents (): falha ao ativar criptografia em ... php na linha 2
- Aviso: file_get_contents (
https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json
): falha ao abrir fluxo: operação falhou em ... php na linha 2
Estamos usando um servidor Gentoo. Recentemente, atualizamos para o PHP versão 5.6. Foi após a atualização quando esse problema apareceu.
Encontrei quando substituí o serviço REST por um endereço como https://www.google.com
; minha página funciona muito bem.
Em uma tentativa anterior “verify_peer”=>false
, configurei e passei isso como um argumento para file_get_contents, conforme descrito aqui: file_get_contents ignorando o confirm_peer => false? Mas como o escritor observou; não fez diferença.
Perguntei a um de nossos administradores de servidor se essas linhas em nosso arquivo php.ini existem:
- extension = php_openssl.dll
- allow_url_fopen = Ativado
Ele me disse que, como estamos no Gentoo, o openssl é compilado quando construímos; e não está definido no arquivo php.ini.
Também confirmei que allow_url_fopen
está funcionando. Devido à natureza especializada deste problema; Não estou encontrando muitas informações para obter ajuda. Algum de vocês se deparou com algo assim? Obrigado.