2012-04-30 6 views
1

メールクライアントとRFCの詳細については、現在pop3メールクライアントをプログラミング中です。コマンド:openssl s_client -connect pop.gmail.com:995がGoogleサーバーに接続して有効になります認証後に電子メールを取得して確認する必要があります。 TCPソケット接続を開始した後、Javaでこれをどのように行うのですか?本当に悪いの代替は、あなたが代わりに通常のソケットのSSL Socketを開いてしまうと、そのコマンドを実行するプロセスを起動するために、外部Javaのopensslと同等

おかげ

答えて

3

です。 SSLSocketでは、秘密鍵と証明書の設定のようないくつかの追加作業が必要です。 "SSLSocket java examples"を検索する場合は、サンプルコードを手に入れて設定することをお勧めします。 SSLSocketを作成してgmailに接続すると、通常のSocketと同じように、入出力ストリームをソケットから取得できます。

も参照してください:Java client certificates over HTTPS/SSL

+1

@JohnSmithをあなたは勇敢であれば、あなたもNIOと 'SSLEngine'を使用することができます。これは、リンクされた質問で最も上に上げられた答えで言及されたtrustmanagerを使用しないでください、これはサーバー証明書の検証を無効にして、接続をMITM攻撃に開放させるでしょう。 (pop.gmail.comの証明書は、デフォルトのトラストストアを使用して検証する必要があります。ここでは特別な設定は必要ありません:デフォルトのSSLSocketFactoryを使用してください) – Bruno

+1

@JohnSmith "SSLSocketsは、プライベートキーと証明書のセットアップのような余分なもののカップルは "正しくありません。これは、サーバーがクライアント認証を必要とする場合にのみ必要です。そうでなければ、サーバー証明書を信頼するという問題に対処するだけで済みます。最悪の場合、単純なエクスポート/インポートのステップです。 – EJP