CakePHP3.x系でHttp Client で通信をしようとしてSSL使いたくないよって言ったらハマったこと
Cake3に用意されてるHttp Clientのクラスを使ってAPIとの通信をしようと考えていました。
設定はこんな感じで〜って言われて、
任せろみたいなことを言いました。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
初めてだったのでここで見ながら書き換えて
PHP マニュアル cURL 関数
http://php.net/manual/ja/function.curl-setopt.php
こんな感じに書きました!(失敗作)
失敗
$option = [
'timeout' => 5,
'ssl_verify_peer' => false,
'ssl_verify_host' => false,
'auth' => [
'username' => 'username',
'password' => 'password',
]
];
$http = new Client($option);
$url = 'ponpon.com';
$request = ['animal'=>'tanuki'];
$response = $http->post($url, $request, $option);
ずっとSSL通信でfopen(): Peer certificateってでる…これfalseしたでしょ…
なんでだろうってコード見に行ったら「ssl_verify_peer_name」がデフォルトでtrueになってました。
……「ssl_verify_peer」がfalseでも「ssl_verify_peer_name」はtrueに…そうか…わかった…
'ssl_verify_peer_name' => falseの記述増そう。。。
成功
$option = [
'timeout' => 5,
'ssl_verify_peer' => false,
'ssl_verify_peer_name' => false,
'ssl_verify_host' => false,
'auth' => [
'username' => 'username',
'password' => 'password',
]
];
$http = new Client($option);
$url = 'ponpon.com';
$request = ['animal'=>'tanuki'];
$response = $http->post($url, $request, $option);
これで動きました。
Author And Source
この問題について(CakePHP3.x系でHttp Client で通信をしようとしてSSL使いたくないよって言ったらハマったこと), 我々は、より多くの情報をここで見つけました https://qiita.com/harykiti/items/12200e1fe093a00465d0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .