2017-05-29 3 views
2

私はUNLのDB(UNサイトにlink)とのインターフェイスを提供するCRAN上のAPIパッケージを持っています。これは、curlパッケージを使用するhttrを使用して構築されています。CRAN pkgでssl_verifypeer = FALSEを使用していますか?

Error in curl::curl_fetch_memory(url, handle = handle) : Peer certificate cannot be authenticated with given CA certificates

基本的な接続を完了することから、カールを防止するCA証明書の問題がありますを意味し、どの:私は、彼らがすべてのエラーメッセージで失敗、私のパッケージのコア機能は、もはやWindowsマシン上で正常に動作したことを昨日発見しました。これを少し調べてみると、DBをホストしている国連のサイトが問題だと思います。そのSSL証明書はssldecoderごとに無効です(link参照)。

この問題を回避する簡単な修正方法は、httr::GET()へのすべての呼び出しにパラメータssl_verifypeer = FALSEを追加することです。ただし、サイトの証明書の有効性に関係なく、カールが接続を確立するように基本的に指示するため、これはセキュリティ上の理由から理想的なソリューションではありません。

私の質問は、CRANパッケージ内でこのパラメータを使用するコンセンサスは何ですか?国連のウェブサイトは(おそらく)安全であることに留意してください。

答えて

1

経由https://curl.haxx.se/docs/sslcerts.html

リモートサーバーを確認し、接続時に検証のため、このCA証明書を指摘する適切なオプションを使用することができるCA証明書を取得します。 libcurlハッカーの場合:curl_easy_setopt(curl, CURLOPT_CAPATH, capath);

オプションでは、capathです。

ここでは、https://curl.haxx.se/docs/caextract.htmlの最新のバージョンを取得できます。メインのcURLサイトを信頼していることを前提としています。

cacert.pem === ca-bundle.crtもし両方の/への参照があるとしたら、

更新されたCAファイルでも引き続き問題が発生した場合は、FALSEを関数に渡すだけで、問題が解決したと思うようになります。

データの完全性の損失/操作が悪影響を及ぼす原因がわかりません。しかしそれを超えて、旗を掲げられた証明書もまたMITMのユーザーのサインになります。いずれにしても、イネーブラーであることについて二度考えなければなりません。

+0

フィードバック@hrbrmstrをありがとう。私はCRANに電子メールを送って、何が起こっているのかを知らせ、問題が解決されるまでパッケージを取り下げることを提案しました。また、私はUN Comtradeのウェブサイトにバグレポートを提出し、私が見つけたものを頭に入れ、最近SSL証明書を変更したかどうかを尋ねました。最後の質問ですが、私はまだCSVデータをread.csvとjsonデータでサイトから引き出すことができます...これは単にこれらのオプションがhttr/curlより本質的に安全性が低いことを意味しますそれらに頼るべきではない)? –

3

私は、コンセンサスについて知っているが、Hadley writesません:

あなたはセキュリティが危険にさらされたときに知られたくない場合を除きあなたは、デフォルトとしてFALSE ssl.verifypeer =を使用しないでください。

つまり、I have seen packagesはデフォルトでこのオプションを使用しています。

有効な証明書がないと、国連ウェブサイトがではなく、が侵害されていることをどのように知っていますか?

パッケージのドキュメントの先頭に問題を明示し、オプションを設定するのはユーザーの責任であることを示すことをお勧めします。そして、ホスティングサービスがすぐに証明書をソートすることを望みます。

+0

@neifws入力とリンクをありがとう。あなたの質問に関して、私は国連のサイトが侵害される可能性があるとは考えていませんでした。最後の手段としてあなたの潜在的な解決策が好きです。再度、感謝します。 –

+0

私はそれが損なわれていることを示唆していないし、そうでないことも示唆していない。 **問題が**あった場合、デフォルトでは安全でないオプションを提供したくないという問題があると思います。個々のユーザーが進めたい場合は、その決定です。 – neilfws

+0

ユーザーにonusを入れているかどうかは、==許容可能な答えではありません。 – hrbrmstr

関連する問題