Simple Java HTTPS server

來源:互聯網
上載者:User

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" );

        }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.