public static SSLServerSocket createSSLServerSocket( KeytoolKey key, int port, int backlog, InetAddress addr) throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, KeyManagementException, NoSuchProviderException { SSLContext context = SSLUtil.createSSLContext(key, null); SSLServerSocketFactory ssf = context.getServerSocketFactory(); SSLServerSocket server = (SSLServerSocket) ssf.createServerSocket(port, backlog, addr); SSLUtil.removeOutdatedCiphers(server); return server; }
protected void initialiseSsl() throws Exception { if (isSSLEnabled()) { sslImplementation = SSLImplementation.getInstance(getSslImplementationName()); for (SSLHostConfig sslHostConfig : sslHostConfigs.values()) { for (SSLHostConfigCertificate certificate : sslHostConfig.getCertificates(true)) { SSLUtil sslUtil = sslImplementation.getSSLUtil(sslHostConfig, certificate); SSLContext sslContext = sslUtil.createSSLContext(negotiableProtocols); sslContext.init(sslUtil.getKeyManagers(), sslUtil.getTrustManagers(), null); SSLSessionContext sessionContext = sslContext.getServerSessionContext(); if (sessionContext != null) { sslUtil.configureSessionContext(sessionContext); } SSLContextWrapper sslContextWrapper = new SSLContextWrapper(sslContext, sslUtil); certificate.setSslContextWrapper(sslContextWrapper); } } } }