anchor.diff:  [source, properties]
   ----
   server.bufferSize = 16384
  +server.compressionLevel = 6
   server.port = 8080
   server.ioThreads = 16
   server.workerThreads = 64
  
positive.code: ----
  {
    serverOptions {
      ssl = SslOptions.x509("path/to/server.p12", "password")             <1>
    }
  }
  ----
  
  <1> Creates SslOptions using PKCS12 certificates path
  
  Certificate (.crt) location can be file system or class path locations.
  
  Optionally you can define the SSL options in your application configuration file:
  
  
negative.code: ----
  {
    serverOptions {
      ssl = SslOptions.from(config).get()
    }
  }
  ----
  
  ==== Client Authentication (Mutual TLS)
  
  To enable 2-way TLS (Mutual TLS), set the trust certificate and client authentication. Setting the trust certificate is required if using self-signed or custom generated certificates so that the server will trust the client's certificate signing authority.
  
  .Client Authentication
  [source,java,role="primary"]
  ----
  {
    SslOptions ssl = SslOptions.pkcs12("path/to/server.p12", "password")
      .setTrustCert("path/to/trustCert") <1>
      .setTrustPassword("password") <2>
      .setClientAuth(SslOptions.ClientAuth.REQUIRED); <3>
    setServerOptions(new ServerOptions()
        .setSsl(ssl)                                                      
    );
  }
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  {
    serverOptions {
      ssl = SslOptions.pkcs12("path/to/server.p12", "password")
        .trustCert("path/to/trustCert) <1>
        .trustPassword("password) <2>
        .clientAuth(SslOptions.ClientAuth.REQUIRED) <3>
    }
  }
  ----
  
  <1> Set the trust certificate path
  <2> Set the trust certificate password
  <3> Set the client authentication mode. Possible values are REQUIRED, REQUESTED, or NONE. Default is NONE.
  
  Optionally you can define these SSL options in your application configuration file:
  
  .Ssl options:
  [source,json]
  ----
  server {
    ssl {
      type: PKCS12,
      cert: "path/to/server.p12",
      password: "password",
      trust {
        cert: "path/to/trustCert",
        password: "password"
      }
      clientAuth: REQUIRED
    }
  }
  ----
  
  .Mutual TLS from configuration
  [source,java,role="primary"]
  ----
  {
    setServerOptions(new ServerOptions()
        .setSsl(SslOptions.from(getConfig()))
    );
  }
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  {
    serverOptions {
      ssl = SslOptions.from(config).get()
    }
  }
  ----
  