2011-07-06 10 views
1

TLS認証のツイスターWebサーバーがあり、SMTP経由で接続するとハングアップするようです。ここでは、サーバを起動するためのツイストコードのブロックは、次のとおりです。Twisted server接続でTLSがハングアップする

(注意:certificateDataが動作するように、自己署名証明書を取得する唯一の方法であるように思われている、私たちの秘密鍵と一緒に連結し、公開鍵である)

customFactory = CustomSMTPFactory(portal) 
certificate = PrivateCertificate.loadPEM(certificateData) 
contextFactory = certificate.options(certificate) 
tlsFactory = TLSMemoryBIOFactory(contextFactory, False, customFactory) 

a = service.Application("Custom Server") 
internet.TCPServer(5870, tlsFactory).setServiceParent(a) 
クライアントで

、この行は単にデータを読み取るために待機してハングアップ:

smtplib.SMTP('localhost',5870) 

任意のアイデア?ツイストされたWebサーバーでTLS認証を設定するにはどうすればよいですか?

答えて

3

サーバーは、接続の開始からTLSを開始します。代わりにsmtplib.SMTP_SSLを試してください。クライアントはこれを期待します。

+0

うまくいくと思います。私は私の問題を別の方法で解決しました。つまり、標準のESMTPプロトコルは、秘密/公開鍵で適切にセットアップされていれば、通信を処理します。だから私はTLS工場で私の工場を包む必要はありません。それが接続されるとTLS通信を交渉します。しかし、ありがとう。 – Thatcher

関連する問題