@Override
    public void start(Future<Void> startFuture) {
        super.start(startFuture);

        HttpApiFactory.init(engine.getApiRequestPathParser());

        InheritingHttpServerOptions httpsServerOptions = new InheritingHttpServerOptions();
        httpsServerOptions
            .setSsl(true)
            .setKeyStoreOptions(
                    new JksOptions()
                        .setPath(apimanConfig.getKeyStore())
                        .setPassword(apimanConfig.getKeyStorePassword())
                    )
            .setTrustStoreOptions(
                    new JksOptions()
                        .setPath(apimanConfig.getTrustStore())
                        .setPassword(apimanConfig.getTrustStorePassword())
                    );
        addAllowedSslTlsProtocols(httpsServerOptions);

        if (JdkSSLEngineOptions.isAlpnAvailable()) {
            httpsServerOptions.setUseAlpn(true);
        }

        // Load any provided configuration into the HttpServerOptions.
        JsonObject httpServerOptionsJson = apimanConfig.getVerticleConfig(verticleType().name())
                .getJsonObject("httpServerOptions", new JsonObject()); //$NON-NLS-1$
        InheritingHttpServerOptionsConverter.fromJson(httpServerOptionsJson, httpsServerOptions);

        vertx.createHttpServer(httpsServerOptions)
            .requestHandler(this::requestHandler)
            .listen(apimanConfig.getPort(VERTICLE_TYPE),
                    apimanConfig.getHostname());
    }
A HTTPS gateway verticle

@author Marc Savy {@literal <msavy@redhat.com>}
gateway/platforms/vertx3/vertx3/src/main/java/io/apiman/gateway/platforms/vertx3/verticles/HttpsGatewayVerticle.java