@Override
    public void reconfigure(Map<String, ?> newConfigs) throws KafkaException {
        SslEngineFactory newSslEngineFactory = createNewSslEngineFactory(newConfigs);
        if (newSslEngineFactory != this.sslEngineFactory) {
            Utils.closeQuietly(this.sslEngineFactory, "close stale ssl engine factory");
            this.sslEngineFactory = newSslEngineFactory;
            log.info("Created new {} SSL engine builder with keystore {} truststore {}", connectionMode,
                    newSslEngineFactory.keystore(), newSslEngineFactory.truststore());
        }
    }
Create an SslFactory.

@param connectionMode                        Whether to use client or server mode.
@param clientAuthConfigOverride              The value to override ssl.client.auth with, or null
                                             if we don't want to override it.
@param keystoreVerifiableUsingTruststore     True if we should require the keystore to be verifiable
                                             using the truststore.
clients/src/main/java/org/apache/kafka/common/security/ssl/SslFactory.java