CygwinのcurlでSSL certificate problemとなる。
事象
Cygwinでcurlを使って、httpsで通信しようとした場合にエラーとなる。
$ curl https://google.co.jp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
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). If the default
bundle file isn't adequate, 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.
実施したこと
サーバ証明書をダウンロードする
http://curl.haxx.se/docs/caextract.html からca-bundle.crtをホームディレクトリにコピーする。
ファイル名を「curl-ca-bundle.crt 」に変更する。
ただし、カレントディレクトリを移動するとうまくいかない。
$ ls
ca-bundle.crt
$ mv ca-bundle.crt curl-ca-bundle.crt
$ curl https://google.co.jp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 222 100 222 0 0 395 0 --:--:-- --:--:-- --:--:-- 395<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.co.jp/">here</A>.
</BODY></HTML>
$ cd /
$ curl https://google.co.jp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
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). If the default
bundle file isn't adequate, 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.
curlの日本語マニュアルに以下の記述を発見。とりあえずcurl-ca-bundle.crtをPATH内に配置する。
curl の windows 版は、自動的に, curl.exe と同じディレクトリ内, カレントディレクトリ内, あるいはユーザの PATH 以下のフォルダから、 curl-ca-bundle.crt というファイル名の CA 証明書を探し出します。
http://www.hcn.zaq.ne.jp/___/unix/curl_manpage.html
Author And Source
この問題について(CygwinのcurlでSSL certificate problemとなる。), 我々は、より多くの情報をここで見つけました https://qiita.com/takashi0012002/items/64872f5d87fd13cb9d5b著者帰属:元の著者の情報は、元の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 .