SOFTELメモ

</> 技術者募集

curl: (60) SSL certificate problem, verify that the CA cert is OK

問題

こんなエラーが出ます。どうしたらいいでしょう。

curl コマンドでも、phpのcurl関数でも発生します。

$ curl https://api.amazon.co.jp/auth/o2/tokeninfo?access_token=ABC~~~~
↓
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate
verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

答え

OSにバンドルされているルート証明書などが古いので証明書の検証ができない様子。

以下どれでも対応はできそう。

1、オプションで証明書のエラー無視
2、引数などで使ってほしいルート証明書などを指定する
3、OSに入ってる証明書を新しくする

3で、yumなどでパッケージを更新するのが無難なところ。

CentOS6 で

# yum update ca-certificates

CentOS5 で

# yum update openssl

検証は、以下のように curlコマンド実行などで。

curl -sv --head  https://www.yahoo.co.jp

→ SSL certificate verify ok. と出てれば検証OK

関連するメモ

コメント