さとうナイトニッポン

やったことのメモとか日々の雑記とか

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