curlコマンドでTLS/SSLのエラーを無視する方法
スポンサーリンク
このドキュメントの内容は、以下の通りです。
はじめに
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 に記事をリライトしました。
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 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