AWS の AWSSDKforPHP を Windows で動かすときの注意点

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 となりつつある…

This entry was posted in AWS, AWSSDKforPHP, cloud, PHP, SDK. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>