AWSSDKforPHP の新しいものを Windows で動かしたところ
RequirestCore_Exception が発生するようになりました。
結論としては Windows 環境ではシステムが保持している
SSL のルート証明書を正しく取得できない模様です。
そのため AWSSDKforPHP が内部に保持している
SSL のルート証明書を使用するようにする必要があります。
実際のメッセージは
Fatal error: Uncaught exception ‘RequestCore_Exception’ with message ‘cURL resource: Resource id #12; cURL error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (60)’ in S:\Projects\ec\AWS\php_ec2-import-key\AWSSDKforPHP\lib\requestcore\requestcore.class.php:824
Stack trace:
#0 S:\Projects\ec\AWS\php_ec2-import-key\AWSSDKforPHP\sdk.class.php(1074): RequestCore->send_request()
こんな感じになってます。
AWSSDKforPHP が保持している SSL のルート証明書を使用するには
AWSSDKforPHP 用の config.in.php で
define(‘AWS_CERTIFICATE_AUTHORITY’, true);
と AWS_CERTIFICATE_AUTHORITY を true にする必要があります。
解決策の元は
https://forums.aws.amazon.com/ann.jspa?annID=1005
http://aws.amazon.com/releasenotes/5688066312133669
となります。
すでに本家のフォーラムでも FAQ となりつつある…