2013-07-02 19 views
21

現在libmproxyを使用しており、次にtelnetlibを使用してHTTPS Webページに要求します。ただし、次のエラーが発生しますlibmproxyの 'tlsv1 alert unknown ca'エラーを回避するにはどうすればよいですか?

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

私は、このページが使用する証明書を保証するCAの身元を確認することができないことに関連していると信じています。検証のバイパスを可能にする設定をする必要があると思います。私はデジタル署名者の身元を確認することには興味がありません。

私は可能な、醜い解決策は、例外をキャッチしてそれを無視するためにコードを修正することができると思うが、私はむしろよりクリーンでよりサポートされた方法を持っているだろう。

この問題を回避/解決するには、どのような方法が良いですか?

ありがとうございました!

+2

検証をバイパスすると、潜在的なMITM攻撃に対して接続が脆弱になることは知っていますか? – Bruno

+1

はい。これは本質的に安全でない環境であり、潜在的に安全でない状況に入ることは「OK」です。しかし、頭がおかげでありがとう:) –

+1

私はこれを掘り下げようとしましたが、実際には "pythonの"質問ではありません - その答えは基礎となるライブラリに固有のものになるでしょう。 libmproxyはopensslライブラリを使用するnetlibを使用するように見えるので、opensslライブラリを見てそこから検証をオフにして、netlibにそれをアクティブにする方法があるかどうかを調べ、libmproxy make netlibを有効にしてopensslが証明書を検証しないようにします。 –

答えて

2

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

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

+0

それは調べる価値があるかもしれないような音。それをどうやって行うのか、それらの用語が意味することを詳しく説明できますか? –

2

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

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

:あなたが使用できるLinuxクライアントの場合

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

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

libmproxyのウェブページを読んで、また

を(https://apple.stackexchange.com/questions/80623/import-certificates-into-system-keychain-via-the-command-lineからこの答えを得ました)それはcを読み込むことができるようですカスタム証明書。クライアントがすでに信頼している内部の証明機関が既にある場合は、そこから証明書を生成するだけです。

関連する問題