スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに


curlコマンドとは、Unix(FreeBSDやLinux)やMacなど、様々な環境で利用されているプログラムです。 curlコマンドは、指定されたURLのデータを取得するコマンドです。
curlは、ウェブサーバからデータをダウンロードしたいときや、何らかの動作確認をするときなど、様々な目的で利用されています。

この記事をお読みの方は、シェルやコマンドが大好きな方なのではないかと思っています。私もいろいろなコマンドを利用していますが、 curlコマンドも相当使っているコマンドではないかと思います。どこかのウェブサーバのレスポンスヘッダが確認したいときは、 curl -I みたいなコマンドをたびたび叩いています。似たようなコマンドだと wget も利用しています。curl/wget とは、だいぶ違いますが、また、 curl/wget よりも利用頻度は低いと思いますが、 w3m なんかもたまに利用していますね。


今回の記事では、curlコマンドで、TLS証明書(SSL証明書)のエラーが出ても無視して、アクセスする必要があったので、メモを残しておきます。本来は、証明書のエラーを無視すべきではありません。証明書のエラーを無視しないでよい方法を調べて、修正するのが正しい対処方法でしょう。

ところで、どういったケースで証明書のエラーを無視したくなるのでしょうか?
証明書のエラーを無視したいケースはいくつかあると思います。
ルート証明書の情報が古くて、新しいルート証明書で発行された証明書の検証が失敗してしまい、curlコマンドが終了してしまう、といったケースです。
ルート証明書が古いのであれば、ルート証明書のパッケージを更新するなどの対応をするのが正しいと思います。権限がないなどの理由で、無視せざる得ない場合もあるのかもしれません。

もしくは、システムを開発・運用している組織の場合においては、開発環境と本番環境などの環境が複数あって、開発環境やテスト環境などには証明書を入れていなかったり、FQDN(Fully Qualified Domain Name, 完全修飾ドメイン名)が開発と本番で異なっている、といったケースもあるかもしれません。

証明書のエラーの例の紹介


これが起きるのは当たり前ですが、例として紹介します。
たとえば、このようなアクセスをすると、証明書のエラーが出ます。

これは、ヤフーのログインサーバの例です。 IPアドレスは、この記事を作成した当時の login.yahoo.co.jp ですが、IPアドレスは変わってしまう可能性があるので、同じコマンドを実行したときに、同じ結果が得られるかどうかはわかりませんので、ご理解いただけると助かります。また、昨今では、SNIを利用していて、まったく異なるエラーが表示されるケースもあるかと思います。
% curl -I https://114.111.79.198/config/login
curl: (51) SSL: certificate subject name 'login.yahoo.co.jp' does not match target host name '114.111.79.198'

証明書でエラーがおきると、curlコマンドのデフォルトの動作では、処理が終了してしまいます。したがって、デフォルトの動作では、指定したURLからデータを取得することができません。

証明書のエラーを無視する方法


これは、お勧めできる話ではありません。証明書/TLSは、セキュリティの目的で利用されています。そのセキュリティのために利用される証明書でエラーがおきるということは、問題があるということです。

証明書のエラーが出ても、それでも、どうしてもデータを取得したい場合には、 -k / --insecure オプションを使えば、SSLのエラーが無視できます。

curl -k http://foo.com/

login.yahoo.co.jp の例では、このようになります。
% curl -I https://114.111.79.198/config/login -k

これで、エラーを無視して、URL にアクセスして、データを取得することができます。

繰り返しになりますが、証明書のエラーは、無視するべきではありません。無視しても問題ケースにおいては構わないかもしれませんが、証明書エラーにならない方法を考えるようにして頂ければよいと思います。

更新履歴


2020/05/22 に記事をリライトしました。

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー