2011-12-16 26 views
8

: Ben bir "javax.net.ssl.SSLException olsunSSL Nasıl düzeltilir - Aşağıdaki kodu kullanarak bir sunucu SSL soket bağlantısı yapmak istiyorum hiçbir mevcut sertifikayı

int port = 12000; 
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault(); 
ServerSocket ssocket = ssocketFactory.createServerSocket(port); 

// Listen for connections 
Socket socket = ssocket.accept(); 

: Hayır mevcut sertifika veya anahtar kabul edilirken SSL şifre setleri "karşılık gelir. ,

-Djavax.net.ssl.keyStore=ClubConnectionKeystore -Djavax.net.ssl.keyStorePassword=mypassword 

Ben keystore'da okumak üzere kod özledim yapın:

ben kullanarak bir RSA anahtarı içeren bir Keystore yarattı:

keytool -genkeypair -alias ClubConnectionCert -keyalg RSA -validity 7 -keystore ClubConnectionKeystore 

ve ben aşağıdaki seçeneklerle benim Programı başlatmak veya verilen anahtar deposunun gerçekten kullanıldığını nasıl test edebilirim/hata ayıklayabilirim?

cevap

7

Kodunuzu çalıştırdım ve düzgün çalıştığını doğrularım.

sizin deposu dosyasına emin javax.net.ssl.keyStore puan tam olun. Anahtar deposu dosyamı projemin kök dizinine koyarım. Belki de anahtar deponuzun tam yolunu deneyin.

-D parametrelerinin Program seçenekleri (IDE'nizde değil) olarak JVM params olarak ayarlandığından emin olun.

İyi şanslar, işe yaramak üzeresiniz.

+0

Ayrıca: ssl'nin java olmadan da çalıştığından emin olun. – jayunit100

+0

@ jayunit100: ne demek istiyorsun? – Bruno

+1

Varolmayan bir yol işaret ediyorsa, bir 'FileNotFoundException 'alırsınız. "-D parametrelerinin JVM params olarak ayarlandığından emin olun" en olası açıklamadır: JSSE'de herhangi bir varsayılan anahtar deposu yoktur (bu nedenle, sistem özelliğini belirtmemek, bu hataya yol açar). – Bruno