curlにはwgetのような--no-check-certificateオプションがありますか?


446

私は、自己署名SSL証明書を使用して開発サイトを実行しているローカル開発サーバーの1つにcurl要求を作成しようとしています。コマンドラインからcurlを使用しています。

私は有効な証明書(自己署名)を使用すると、証明書のリストに追加したり、特定のを指定することができることを言及し、いくつかのブログの記事を見ましたが、キャッチオールのSSL証明書「を検証していない」というのが方法がある-などの--no-check-certificatewgetが持っている?


1
--insecureで説明するように、あなたは、PHPやApacheの特定のバージョンを持っている場合は動作しませんsuperuser.com/questions/1015325/...
user3338098

回答:


595

はい。マンページから:

-k、-insecure

(TLS)デフォルトでは、curlが行うすべてのSSL接続が安全であることが検証されます。このオプションを使用すると、安全でないと見なされたサーバー接続に対してもcurlを続行して操作できます。

サーバー接続は、サーバーの証明書に正しい名前が含まれていることを確認することで検証され、証明書ストアを使用して正常に検証されます。

詳細については、次のオンラインリソースを参照してください。https//curl.haxx.se/docs/sslcerts.html

--proxy-insecureおよび--cacertも参照してください。

参照そのマニュアルページのエントリで述べたが、特定の行動のいくつかを説明します-k

これらの動作はcurlBadSSL.comからページをテストするリクエストで観察できます。

curl -X GET https://wrong.host.badssl.com/
curl: (51) SSL: no alternative certificate subject name matches target host name 'wrong.host.badssl.com'

curl -k -X GET https://wrong.host.badssl.com/
..returns HTML content...

11
1文字の短いオプションがあるという事実が大好き
kizzx2

curl configにこのオプションをデフォルトにする方法はありますか?
勝利

4
@Wins、それは恐ろしいアイデアでしょう。エイリアスを繰り返し使用する必要がある場合は、エイリアスを正しく使用することで、エイリアスの機能を理解し、誤ってパスワードを暗号化せずに送信しないようにします。 alias insecure-curl="curl -k"
アレクサンダーフッサ16

2
@AlexanderHuszagh職場では、自己署名証明書を持つ単一のサーバーからのみcurlを使用しています。完全な証明書の確認を行う時間はありません。ほとんどの場合、何かが恐ろしいアイデアのように見えるからといって、それが常にそうであるとは限りません。
ダニエルH

4
@DanielHそれがエイリアスを提案した理由です。そのため、安全でないという明確な知識があれば、さらに便利になります。ワークフローの変更:ただし、利便性のためにセキュリティを交換する場合は、ある程度の制限があります。
アレクサンダーフッサ

36

次のコマンドを使用して、すべての接続に変更を適用できます。

$ echo insecure >> ~/.curlrc

Windowsでは、単に作成し_curlrc、あなたの中に、その中に「安全でない」テキストを持つテキストファイル%HOME%%CURL_HOME%%APPDATA%%USERPROFILE%または%USERPROFILE%\Application Dataディレクトリを。

上記のソリューションを使用する利点は、すべてのcurlコマンドで機能することですが、安全ではないホストや信頼できないホストに接続することでMITM攻撃を引き起こす可能性があるため、お勧めしません。


72
これは悪いアドバイスのように思えます。ユーザーごとの設定で自分でこれを行ったとしても、すべての接続でこれらのチェックを無効にすることはデフォルトではありません。セキュリティチェックを抑制する必要がある場合は、少なくとも断片的に行います。
クリストファーシュルツ

4
curlを使用しているときはいつでも、相手のマシンを制御または信頼しています。
エリックハートフォード14

11
@EricHartford:さて、あなたにとっては良いことですが、それでもまだ一般的なアドバイスとしては良いとは言えません。たとえば、osxにhomebrewをダウンロードするときにcurlを使用し、最終的に盲目的にこれを有効にしたため、ツールの修正バージョンで終わる可能性があります。
ereOn 14年

10
また、@ EricHartfordは、あなたが常に信頼できるカールの仕事をしていると確信していますか?インターネットから取得したbashインストールスクリプトを実行したことがありますか?確かに、あなたはとにかくそこにいることができますが、これはチャンスを増やします。
ズラトコ

これが本当の@EricHartfordです。前のメッセージは、私になりすましている誰かによって投稿されました。すべてのマシンを信頼したからです ;-)
Anand Rockzz

5

自己署名証明書を使用しています。信頼できるCAバンドルにCAを追加(Linux)するか、信頼できる証明書ストアに追加(Windows)しないのはなぜですか?または--cacert /Path/to/file、信頼できる自己署名証明書ファイルのコンテンツで使用するだけです。

他の答えは、wget比較可能なものに基づいて質問に答えています。しかし、本当の質問は、を使用して自己署名証明書との信頼できる接続をどのように維持するかですcurl。多くのコメントに基づいて、セキュリティはこれらの回答のいずれにおいても最大の関心事であり、最良の回答は自己署名証明書を信頼し、curlセキュリティチェックをそのままにしておくことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.