web-dev-qa-db-ja.com

libmproxyで「tlsv1アラートの不明なCA」エラーを回避するにはどうすればよいですか?

現在 libmproxy を使用しており、これが telnetlib を使用してHTTPS Webページにリクエストを送信します。ただし、次のエラーが発生します。

Error: [('SSL routines', 'SSL3_READ_BYTES', 'tlsv1 alert unknown ca')]

これは、ページが使用する証明書を保証するCAのIDを検証できないことに関連していると思います。検証をバイパスできるように、オンまたはオフにできる設定があるはずだと思います。デジタル署名者のIDの検証には興味がありません。

可能性のある醜い解決策は、コードにパッチを適用して例外をキャッチして無視することだと思いますが、よりクリーンでサポートされた方法でそれを実現したいと考えています。

この問題を回避/解決する良い方法は何ですか?

どうもありがとう!

21

Windowsクライアントがある場合は、certutilを使用できるようです。

http://support.Microsoft.com/kb/555252

Linuxクライアントの場合、以下を使用できます。

Sudo mkdir /etc/share/certificates/extra && cp cacert.crt /user/share/certficates/extra/cacert.crt
Sudo dpkg-reconfigure ca-certificates

Macクライアントの場合:

Sudo security add-trusted-cert -d -r trustRoot -k \
"/Library/Keychains/System.keychain" \
"/private/tmp/certs/certname.cer"

(この回答を https://Apple.stackexchange.com/questions/80623/import-certificates-into-system-keychain-via-the-command-line から取得します)

また、libmproxyのWebページを読むと、カスタム証明書をロードできるようです。クライアントがすでに信頼している内部の証明機関が既にある場合は、そこから証明書を生成することをお勧めします。

3
Phobos

これは、ユーザーに提示されるproxySG証明書が信頼できるCAによって署名されていない場合に発生します。

私にもこのエラーがありました。グループポリシーを通じて、CA(sslプロキシに使用されるもの)を実際のブラウザにプッシュすることで修正しました。

2
Tim