@Override
    public ClientFactoryBuilder tlsCustomizer(Consumer<? super SslContextBuilder> tlsCustomizer) {
        requireNonNull(tlsCustomizer, "tlsCustomizer");
        ensureNoTlsProvider();
        staticTlsSettingsSet = true;
        @SuppressWarnings("unchecked")
        final ClientFactoryOptionValue<Consumer<? super SslContextBuilder>> oldTlsCustomizerValue =
                (ClientFactoryOptionValue<Consumer<? super SslContextBuilder>>)
                        options.get(ClientFactoryOptions.TLS_CUSTOMIZER);

        final Consumer<? super SslContextBuilder> oldTlsCustomizer =
                oldTlsCustomizerValue == null ? ClientFactoryOptions.TLS_CUSTOMIZER.defaultValue()
                                              : oldTlsCustomizerValue.value();
        if (oldTlsCustomizer == ClientFactoryOptions.TLS_CUSTOMIZER.defaultValue()) {
            option(ClientFactoryOptions.TLS_CUSTOMIZER, tlsCustomizer);
        } else {
            option(ClientFactoryOptions.TLS_CUSTOMIZER, b -> {
                oldTlsCustomizer.accept(b);
                tlsCustomizer.accept(b);
            });
        }
        return this;
    }
Adds the {@link Consumer} which can arbitrarily configure the {@link SslContextBuilder} that will be
applied to the SSL session. For example, use {@link SslContextBuilder#trustManager(TrustManagerFactory)}
to configure a custom server CA or {@link SslContextBuilder#keyManager(KeyManagerFactory)} to configure
a client certificate for SSL authorization.
core/src/main/java/com/linecorp/armeria/client/ClientFactoryBuilder.java