何が必要です(キー certs)Python w/SSLソケット接続?
質問
ようにしていく汎用サーバ-クライアントアプリケーションができるデータを交換もします。を読んでもあり、OpenSSL書いた設定を自分のCAされたcert(鍵)のための試験。
問い合わPython2.3で利用できない標準の"ssl"図書館があります。なんでこだわっPyOpenSSLるように見えませんが向かいにある書類があります。
私の質問最初がやりたかっただけで約できるのではないかと考えてます。んばよいのかわからず戸惑の証明書および必要な場所です。
ここでの私の二つのプログラム い 作品:
サーバー:
#!/bin/env python
from OpenSSL import SSL
import socket
import pickle
def verify_cb(conn, cert, errnum, depth, ok):
print('Got cert: %s' % cert.get_subject())
return ok
ctx = SSL.Context(SSL.TLSv1_METHOD)
ctx.set_verify(SSL.VERIFY_PEER|SSL.VERIFY_FAIL_IF_NO_PEER_CERT, verify_cb)
# ??????
ctx.use_privatekey_file('./Dmgr-key.pem')
ctx.use_certificate_file('Dmgr-cert.pem')
# ??????
ctx.load_verify_locations('./CAcert.pem')
server = SSL.Connection(ctx, socket.socket(socket.AF_INET, socket.SOCK_STREAM))
server.bind(('', 50000))
server.listen(3)
a, b = server.accept()
c = a.recv(1024)
print(c)
クライアント:
from OpenSSL import SSL
import socket
import pickle
def verify_cb(conn, cert, errnum, depth, ok):
print('Got cert: %s' % cert.get_subject())
return ok
ctx = SSL.Context(SSL.TLSv1_METHOD)
ctx.set_verify(SSL.VERIFY_PEER, verify_cb)
# ??????????
ctx.use_privatekey_file('/home/justin/code/work/CA/private/Dmgr-key.pem')
ctx.use_certificate_file('/home/justin/code/work/CA/Dmgr-cert.pem')
# ?????????
ctx.load_verify_locations('/home/justin/code/work/CA/CAcert.pem')
sock = SSL.Connection(ctx, socket.socket(socket.AF_INET, socket.SOCK_STREAM))
sock.connect(('10.0.0.3', 50000))
a = Tester(2, 2)
b = pickle.dumps(a)
sock.send("Hello, world")
sock.flush()
sock.send(b)
sock.shutdown()
sock.close()
ここからの情報 ftp://ftp.pbone.net/mirror/ftp.pld-linux.org/dists/2.0/PLD/i586/PLD/RPMS/python-pyOpenSSL-examples-0.6-2.i586.rpm を含む一部の例ではイントロダクションです。
しか集まるかを十分に理解し、部門間の" # ????????." ったり下がったりよくわからない理由は、証明書と非公開鍵は、それぞれのクライアントとサーバーです。なんなのかがはがないための配布の一部にキー(おそらく、公共部)?この妨げにな目的を有する非対称鍵いても各サーバです。
また交流の除去のいずれかのpkeyはcertいずれかのボックスを取得します以下のようなエラーなし除去す:
OpenSSL.ボタンを使用します。エラー:[('SSLのルーチン','SSL3_READ_BYTES','sslv3アラートハンドシェークの失敗'),('SSLのルーチン','SSL3_WRITE_BYTES','sslハンドシェークの失敗')]
もう説明すればこのにおいて、行動のためのボタンを使用します。いっぽい大人な雰囲気を配信の秘密鍵と公開certすべての私客様がリピーターの方々です。ようにしているの防止に大きなセキュリティ上の問題、漏洩鍵とする大きな一---
のは助かります!
==================================================================
コカフェにあの問題です。に基づく勧告では,二つの新しい証明書:spacemanとdmgr.その後、双方の"spaceman"部品(キー certのクライアントプログラムは、同じ"dmgr"鍵となります。
基本的には、以下の二つのライン お客様 変更があったもののplentlyのopensslていただけます。
ctx.use_privatekey_file('/home/justin/code/work/CA/private/Dmgr-key.pem')
ctx.use_certificate_file('/home/justin/code/work/CA/Dmgr-cert.pem')
修正バージョン:
ctx.use_privatekey_file('/home/justin/code/work/CA/private/spaceman-key.pem')
ctx.use_certificate_file('/home/justin/code/work/CA/spacemancert.pem')
解決
SSL取引では、それぞれの側できる証明書の検証アイデンティティをしました。このために、ニーズの秘密鍵に対応する証明書。これらのトレードを想定した二 異なる 証明書、お互いの異なる二つの個室鍵となります。
この証明書の鍵と秘密鍵のペアを最初にする設定 use_privatekey_file()
や use_certificate_file()
.こ 異なる 証明書鍵サーバとクライアント
確認およびピアに証明書を使う必要があり、その確認:
- この証明書 有効な (署名したCAのご信頼にこの用途では、有効期限内のものは取り消);や
- に対応したピアする 考え ま接続できるのは、証明書と一致するピアに。このアイデンティティ内に格納された
SubjectName
分野の証明書ではアプリケーションによって固有の方法で地図はこれをピアのアイデンティティ(おそらくユーザログイン名は、DNS名、または何かるようにします。