HTTPS and authentication

    Currently TLS is supported for the HTTP traffic and gossip traffic.

    The file is written in YAML format, defined by the scheme described below. Brackets indicate that a parameter is optional. For non-list parameters the value is set to the specified default.

    Generic placeholders are defined as follows:

    • <boolean>: a boolean that can take the values true or false
    • <filename>: a valid path in the current working directory
    • <secret>: a regular string that is a secret, such as a password
    • <string>: a regular string

    Gossip Traffic

    The server and client sides of the gossip are configurable.

    1. tls_server_config:
    2. # Certificate and key files for server to use to authenticate to client.
    3. cert_file: <filename>
    4. key_file: <filename>
    5. # Server policy for client authentication. Maps to ClientAuth Policies.
    6. # For more detail on clientAuth options:
    7. # https://golang.org/pkg/crypto/tls/#ClientAuthType
    8. [ client_auth_type: <string> | default = "NoClientCert" ]
    9. # CA certificate for client certificate authentication to the server.
    10. [ client_ca_file: <filename> ]
    11. # Minimum TLS version that is acceptable.
    12. [ min_version: <string> | default = "TLS12" ]
    13. # Maximum TLS version that is acceptable.
    14. [ max_version: <string> | default = "TLS13" ]
    15. # List of supported cipher suites for TLS versions up to TLS 1.2. If empty,
    16. # Go default cipher suites are used. Available cipher suites are documented
    17. # in the go documentation:
    18. # https://golang.org/pkg/crypto/tls/#pkg-constants
    19. [ cipher_suites:
    20. [ - <string> ] ]
    21. # prefer_server_cipher_suites controls whether the server selects the
    22. # client's most preferred ciphersuite, or the server's most preferred
    23. # ciphersuite. If true then the server's preference, as expressed in
    24. # the order of elements in cipher_suites, is used.
    25. [ prefer_server_cipher_suites: <bool> | default = true ]
    26. # order. Available curves are documented in the go documentation:
    27. # https://golang.org/pkg/crypto/tls/#CurveID
    28. [ curve_preferences:
    29. [ - <string> ] ]
    30. tls_client_config:
    31. # Path to the CA certificate with which to validate the server certificate.
    32. [ ca_file: <filepath> ]
    33. # Certificate and key files for client cert authentication to the server.
    34. [ cert_file: <filepath> ]
    35. [ key_file: <filepath> ]
    36. # Server name extension to indicate the name of the server.
    37. # http://tools.ietf.org/html/rfc4366#section-3.1
    38. [ server_name: <string> ]
    39. [ insecure_skip_verify: <boolean> | default = false]