code: public SslContext build() throws SSLException {
          if (forServer) {
              return SslContext.newServerContextInternal(provider, sslContextProvider, trustCertCollection,
                  trustManagerFactory, keyCertChain, key, keyPassword, keyManagerFactory,
                  ciphers, cipherFilter, apn, sessionCacheSize, sessionTimeout, clientAuth, protocols, startTls,
                  enableOcsp);
          } else {
              return SslContext.newClientContextInternal(provider, sslContextProvider, trustCertCollection,
                  trustManagerFactory, keyCertChain, key, keyPassword, keyManagerFactory,
                  ciphers, cipherFilter, apn, protocols, sessionCacheSize, sessionTimeout, enableOcsp);
          }
      }
docs: Create new {@code SslContext} instance with configured settings.
  <p>If {@link #sslProvider(SslProvider)} is set to {@link SslProvider#OPENSSL_REFCNT} then the caller is
  responsible for releasing this object, or else native memory may leak.