こんな感じかな。
<?php $url = $argv[1]; $req = new HTTP_Request2( $url, HTTP_Request2::METHOD_GET ); $req->setConfig( array( 'ssl_cafile' => '/etc/pki/tls/certs/ca-bundle.crt', ) ); try { $res = $req->send(); $body = $res->getBody(); echo $body; } catch (HTTP_Request2_Exception $e) { die('Error: ' . $e->getMessage() . "\n"); } ?>
デフォルトで証明書の検証のオプション(ssl_verify_peer)が有効になっているのでssl_cafileを設定しないとエラーになってしまう。CentOS6上だったのでca-certificatesパッケージの証明書を利用している。
ssl_verify_peerをfalseにするという手もあるがセキュリティ上よろしくない。
しかし、ssl_cafileを指定しなかった時のエラー情報少なすぎ
Error: Unable to connect to ssl://twitter.com:443. Error #0: