PHP curl_exec使ってhttpsアクセスしたけどエラーになった時に確認したこととか
未公開のページに対して実行しているcurl_execがうまく動いていなかった。
クローラに見つからないようにbasic認証を掛けていたので、 curl_setopt
を使って認証
curl_setopt($check, CURLOPT_USERPWD, 'ユーザ名 : パスワード');
やっぱりfalseが帰ってくるな・・・・ curl コマンドで直接確認してみると・・・・
curl --basic -u 'ユーザ名':'パスワード' https://hogehoge.jp curl: (51) SSL: certificate subject name 'hogehoge.jp' does not match target host name 'hogehoge.jp'
おやーーーーーーこれは証明書エラーですね。
ということで証明書も一旦無視することにした
curl_setopt($check, CURLOPT_SSL_VERIFYPEER, false); // 証明書の警告回避 curl_setopt($check, CURLOPT_USERPWD, 'ユーザ名:パスワード');
無事通った👏
ちなみにこれはコマンドだと以下の通り
curl --insecure --basic -u 'ユーザ名':'パスワード' https://hogehoge.jp