2011-11-11 5 views
4

Androidでアプリケーションを作成します。これはSSLでサーバーに接続し、データを交換します。ここでは私のサーバーのコードは次のとおりです。androidでSSLを使用する

import javax.net.ssl.SSLServerSocket; 
import javax.net.ssl.SSLServerSocketFactory; 
import javax.net.ssl.SSLSocket; 
import java.io.BufferedReader; 
import java.io.InputStream; 

import java.io.InputStreamReader; 


public class EchoServer { 
public static void main(String[] arstring) { 
    try { 
     SSLServerSocketFactory sslserversocketfactory = 
       (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); 
     SSLServerSocket sslserversocket = 
       (SSLServerSocket) sslserversocketfactory.createServerSocket(23423); 
     SSLSocket sslsocket = (SSLSocket) sslserversocket.accept(); 

     InputStream inputstream = sslsocket.getInputStream(); 
     InputStreamReader inputstreamreader = new InputStreamReader(inputstream); 
     BufferedReader bufferedreader = new BufferedReader(inputstreamreader); 

     String string = null; 
     while ((string = bufferedreader.readLine()) != null) { 
      System.out.println("odpowiedz z servera: "+string); 
      System.out.flush(); 
     } 
    } catch (Exception exception) { 
     exception.printStackTrace(); 
    } 
} 
} 

、ここでは私のクライアントです:私はアンドロイドのアプリケーションに証明書を配置する方法を知らないことに

package andr.andr; 

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.io.OutputStreamWriter; 

import javax.net.ssl.SSLSocket; 
import javax.net.ssl.SSLSocketFactory; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 

public class Androidssl2Activity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

public void fun(View view) 
{ 
    try { 
     SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); 
     SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("87.206.146.154", 23423); 

     InputStream inputstream = System.in; 
     InputStreamReader inputstreamreader = new InputStreamReader(inputstream); 
     BufferedReader bufferedreader = new BufferedReader(inputstreamreader); 

     OutputStream outputstream = sslsocket.getOutputStream(); 
     OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outputstream); 
     BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter); 

     String string = "Echo test"; 

      bufferedwriter.write(string + '\n'); 
      bufferedwriter.flush(); 

    } catch (Exception exception) { 
     exception.printStackTrace(); 
    } 
} 
} 

私の問題。私は、引数の開始を使用カント:

javaの-Djavax.net.ssl.keyStore = mySrvKeystore -Djavax.net.ssl.keyStorePassword = 123456 EchoServer

javaの-Djavax.net.ssl.trustStore = mySrvKeystore -Djavax.net.ssl.trustStorePassword = 123456 EchoClient

通常のJavaプロジェクトと同じです。だから、どのように私はアンドロイドアプリケーションに証明書を指すことができます。私はグーグルをたくさんして何も見つけられないが、私はそれに問題がある唯一の人だとは思っていない。誰でも私にそのことを明確に説明することができますか?助けてくれてありがとう。

答えて

1

↳android.net.SSLCertificateSocketFactory工場では、System.setpropで-Dオプションが使用されていますか?

関連する問題