SDK リリース: 「1.9.37」、タイムスタンプ: 1460570478 OSX 10.11.4 Python 2.7.10
開発環境で file_get_contents() を使用して自己署名証明書を使用してサーバーに接続すると、以下のエラーが発生し始めました。
しばらくの間、これらの条件下で作業する必要がなかったため、このエラーがいつ発生したかはわかりません。
file_get_contents(https://10.10.10.10:10000/script): failed to open stream: SSL certificate error - certificate invalid or non-existent, [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
コード例:
<?php
//$url = 'https://mockbin.org/bin/5b867989-b414-4d75-97db-10f346893574';
$url = 'https://a.public.server:10000';
$context = [ 'http' => [ 'method' => 'GET' ], 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed'=> true ] ];
$context = stream_context_create($context);
$resp = file_get_contents($url, false, $context);
echo $resp;
コードは展開すると機能します。問題が発生するのは、ローカルで開発およびテストしようとしているだけです。
ここでは、verify_peerとverify_peer_nameの両方をfalseに設定しています。上記のように、これは適切な App Engine では機能しますが、開発環境では機能しません。
mockbin を使用すると、無関係なエラーが発生します。これは単にテストのために存在するだけです。