Simple Java HTTPS server

try

        {

            // setup the socket address

            InetSocketAddress address = new InetSocketAddress ( InetAddress.getLocalHost (), config.getHttpsPort () );

 

            // initialise the HTTPS server

            HttpsServer httpsServer = HttpsServer.create ( address, 0 );

            SSLContext sslContext = SSLContext.getInstance ( "TLS" );

 

            // initialise the keystore

            char[] password = "simulator".toCharArray ();

            KeyStore ks = KeyStore.getInstance ( "JKS" );

            FileInputStream fis = new FileInputStream ( "lig.keystore" );

            ks.load ( fis, password );

 

            // setup the key manager factory

            KeyManagerFactory kmf = KeyManagerFactory.getInstance ( "SunX509" );

            kmf.init ( ks, password );

 

            // setup the trust manager factory

            TrustManagerFactory tmf = TrustManagerFactory.getInstance ( "SunX509" );

            tmf.init ( ks );

 

            // setup the HTTPS context and parameters

            sslContext.init ( kmf.getKeyManagers (), tmf.getTrustManagers (), null );

            httpsServer.setHttpsConfigurator ( new HttpsConfigurator( sslContext )

            {

                public void configure ( HttpsParameters params )

                {

                    try

                    {

                        // initialise the SSL context

                        SSLContext c = SSLContext.getDefault ();

                        SSLEngine engine = c.createSSLEngine ();

                        params.setNeedClientAuth ( false );

                        params.setCipherSuites ( engine.getEnabledCipherSuites () );

                        params.setProtocols ( engine.getEnabledProtocols () );

 

                        // get the default parameters

                        SSLParameters defaultSSLParameters = c.getDefaultSSLParameters ();

                        params.setSSLParameters ( defaultSSLParameters );

                    }

                    catch ( Exception ex )

                    {

                        ILogger log = new LoggerFactory ().getLogger ();

                        log.exception ( ex );

                        log.error ( "Failed to create HTTPS port" );

                    }

                }

            } );

            LigServer server = new LigServer ( httpsServer );

            joinableThreadList.add ( server.getJoinableThread () );

        }

        catch ( Exception exception )

        {

            log.exception ( exception );

            log.error ( "Failed to create HTTPS server on port " + config.getHttpsPort () + " of localhost" );

        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值