ssl - Java HttpsServer for testing -


i have made changes configure ssl in our service , want test local http(s)server.

private static httpsserver httpsserver;  @beforeclass public static void server1() throws exception {     httpsserver = httpsserver.create(new inetsocketaddress(8181), 0);      keystore keystore = keystore.getinstance(keystore.getdefaulttype());      path keystorepath = paths.get(system.getproperty(java_home), key_store_path);     keystore.load(files.newinputstream(keystorepath),             key_store_password.tochararray());      keymanagerfactory keymanagerfactory = keymanagerfactory.getinstance (keymanagerfactory.getdefaultalgorithm());     keymanagerfactory.init ( keystore, "changeit".tochararray());      trustmanagerfactory trustmanagerfactory = trustmanagerfactory.getinstance(trustmanagerfactory.getdefaultalgorithm());     trustmanagerfactory.init(keystore);      sslcontext sslcontext = sslcontext.getinstance("tls");     sslcontext.init(keymanagerfactory.getkeymanagers(), trustmanagerfactory.gettrustmanagers(), null);      httpsserver.sethttpsconfigurator ( new httpsconfigurator( sslcontext )     {         public void configure ( httpsparameters params )         {             try             {                 // initialise ssl context                 sslcontext c = sslcontext.getdefault ();                 sslengine engine = c.createsslengine ();                 params.setneedclientauth ( false );                 params.setciphersuites ( engine.getenabledciphersuites () );                 params.setprotocols ( engine.getenabledprotocols () );                  // default parameters                 sslparameters defaultsslparameters = c.getdefaultsslparameters ();                 params.setsslparameters ( defaultsslparameters );             }             catch ( exception ex )             {                 system.out.println( "failed create https port" );             }         }     } );      //create default executor     httpsserver.setexecutor(executors.newcachedthreadpool());     httpsserver.start(); }  @afterclass public static void shutdown(){     httpsserver.stop(0); }  @test public void testnotletsencryptbutsignedbycas() throws exception {     urlconnection connection = new url("https://localhost:8181").openconnection();     connection.connect();     system.out.println(connection.getheaderfields()); } 

but keep getting

   javax.net.ssl.sslhandshakeexception: remote host closed connection during handshake @ sun.security.ssl.sslsocketimpl.readrecord(sslsocketimpl.java:980)     @ sun.security.ssl.sslsocketimpl.performinitialhandshake(sslsocketimpl.java:1363)     @  

com.intellij.rt.execution.junit.junitstarter.preparestreamsandstart(junitstarter.java:234) @ com.intellij.rt.execution.junit.junitstarter.main(junitstarter.java:74) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:497) @ com.intellij.rt.execution.application.appmain.main(appmain.java:144) caused by: java.io.eofexception: ssl peer shut down incorrectly @ sun.security.ssl.inputrecord.read(inputrecord.java:505) @ sun.security.ssl.sslsocketimpl.readrecord(sslsocketimpl.java:961) ... 41 more

what doing wrong here ?


Comments