4

サーバーとクライアントをPythonでセットアップしようとしています。ここで、サーバーは証明書付きのSSLを使用してクライアントを認証します。オンラインでSSL証明書の例はたくさんありますが、私が見つけたものはすべて、サーバーがクライアントに証明書を提供し、クライアントがそれをチェックしていることを示しています。クライアントがサーバーに接続する権限を持っていることを確認するためにサーバーが必要です。証明書を生成して送信する方法と、証明書の動作の基本を理解しています。コードを入力しますが、SSLを使用しないクライアント/サーバーは正常に機能しており、SSLでこれを参照しています。そのページの下部にあるクライアント/サーバーの例は、PythonでのSSL証明書についての私の理解を要約したものです。

これはそれほど進んでいないことはわかっていますが、誰かがその例の基本的な変更を説明して、サーバーにクライアントを認証させることができれば、それは素晴らしいことです。あるいは、例へのリンク、または調査するためのいくつかのソケットメソッドでさえ非常に役立ちます。さらに情報が必要な場合はお知らせください。私は漠然としていて、自分で情報を探すために午前中ずっと過ごしたことを約束するつもりはありません:)。

編集:私は基本的なSSLライブラリに固執しようとしています。別名「importssl」。

4

2 に答える 2

3

SSLSocket.getpeercertを使用して証明書を取得します。クライアントは、サーバー側と同じようにソケットをラップするときにキーと証明書を指定する必要があります。サーバー側では、ca_certs = "path_to_ca_cert_file"も渡す必要があり、おそらくcert_reqs = CERT_REQUIREDも指定する必要があります(ssl.wrap_socketのargsを参照してください

これに加えて、証明書ベースのクライアント認証/承認を検討しているように思われますか?これは、getpeercertを使用してクライアント証明書を取得し、証明書内のフィールドにアクセスして通常の認証パス(つまり、共通名==ユーザーID)で使用するという単純な問題です。

于 2012-12-31T20:23:41.120 に答える
0

あなたの質問が何を指しているのかよくわかりませんが、PythonでのSSL、 PythonでのSSLの他のリソース、SSLの検証 SSL証明書情報の取得、そしておそらく他の良いリンクを見つけることができます。

于 2012-12-31T18:50:56.403 に答える