Skip to content

Commit 9b6767b

Browse files
committed
ssl_multicert.config -> ssl_multicert.yaml
Replace the ssl_multicert.config format with YAML format, following the pattern established by sni.yaml. The new ssl_multicert.yaml uses a top-level 'ssl_multicert' key containing a sequence of certificate entries. This also includes a Python migration script for converting existing configs.
1 parent 3caa876 commit 9b6767b

File tree

185 files changed

+1954
-412
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+1954
-412
lines changed

configs/records.yaml.default.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ records:
199199
##############################################################################
200200
# SSL Termination. Docs:
201201
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/records.yaml.en.html#client-related-configuration
202-
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.config.en.html
202+
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.yaml.en.html
203203
##############################################################################
204204
verify:
205205
server:
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#
2-
# ssl_multicert.config
2+
# ssl_multicert.yaml
33
#
44
# Documentation:
5-
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.config.en.html
5+
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.yaml.en.html
66
#
77
# Allows a TLS certificate and private key to be tied to a specific
88
# hostname or IP address. At load time, the certificate is parsed to
9-
# extract the subject CN and all the DNS subjectAltNames. The
9+
# extract the subject CN and all the DNS subjectAltNames. The
1010
# certificate will be presented for connections requesting any of the
1111
# hostnames found in the certificate. Wildcard names in the certificates
1212
# are supported, but only of the form '*.domain.com', ie. where '*'
@@ -18,7 +18,11 @@
1818
#
1919
# Fields:
2020
#
21-
# dest_ip=ADDRESS
21+
# ssl_cert_name: FILENAME
22+
# The name of the file containing the TLS certificate. This is the
23+
# only field that is required to be present (unless action is tunnel).
24+
#
25+
# dest_ip: ADDRESS
2226
# The IP (v4 or v6) address that the certificate should be presented
2327
# on. This is now only used as a fallback in the case that the TLS
2428
# ServerNameIndication extension is not supported. If ADDRESS is
@@ -30,37 +34,58 @@
3034
# accepted on the specified port. IPv6 addresses must be enclosed by
3135
# square brackets if they have a port, eg, [::1]:80.
3236
#
33-
# ssl_key_name=FILENAME
37+
# ssl_key_name: FILENAME
3438
# The name of the file containing the private key for this certificate.
3539
# If the key is contained in the certificate file, this field can be
3640
# omitted.
3741
#
38-
# ssl_ca_name=FILENAME
42+
# ssl_ca_name: FILENAME
3943
# If your certificates have different Certificate Authorities, you
4044
# can optionally specify the corresponding file here.
4145
#
42-
# ssl_cert_name=FILENAME
43-
# The name of the file containing the TLS certificate. This is the
44-
# only field that is required to be present.
46+
# ssl_ocsp_name: FILENAME
47+
# The name of the file containing the OCSP response for stapling.
4548
#
46-
# ssl_key_dialog=[builtin|exec:/path/to/program]
49+
# ssl_key_dialog: builtin|exec:/path/to/program
4750
# Method used to provide a pass phrase for encrypted private keys.
4851
# Two options are supported: builtin and exec
4952
# builtin - Requests passphrase via stdin/stdout. Useful for debugging.
5053
# exec: - Executes a program and uses the stdout output for the pass
5154
# phrase.
5255
#
53-
# action=[tunnel]
54-
# If the tunnel matches this line, traffic server will not participate
55-
# in the handshake. But rather it will blind tunnel the SSL connection.
56-
# If the connection is identified by server name, an openSSL patch must
57-
# be applied to enable this functionality. See TS-3006 for details.
58-
#
59-
# Examples:
60-
# ssl_cert_name=foo.pem
61-
# dest_ip=* ssl_cert_name=bar.pem ssl_key_name=barKey.pem
62-
# dest_ip=209.131.48.79 ssl_cert_name=server.pem ssl_key_name=serverKey.pem
63-
# dest_ip=10.0.0.1:99 ssl_cert_name=port99.pem
64-
# ssl_cert_name=foo.pem ssl_key_dialog="exec:/usr/bin/mypass foo 'ba r'"
65-
# ssl_cert_name=foo.pem action=tunnel
66-
# ssl_cert_name=wildcardcert.pem ssl_key_name=privkey.pem
56+
# ssl_ticket_enabled: 0|1
57+
# Enable or disable session tickets for this certificate.
58+
#
59+
# ssl_ticket_number: NUMBER
60+
# Number of session tickets to issue for new TLSv1.3 connections.
61+
#
62+
# action: tunnel
63+
# If the connection matches this entry, traffic server will not participate
64+
# in the handshake. Instead, it will blind tunnel the SSL connection.
65+
#
66+
# Example configuration:
67+
#
68+
# ssl_multicert:
69+
# - ssl_cert_name: server.pem
70+
#
71+
# - ssl_cert_name: bar.pem
72+
# ssl_key_name: barKey.pem
73+
# dest_ip: "*"
74+
#
75+
# - ssl_cert_name: server.pem
76+
# ssl_key_name: serverKey.pem
77+
# dest_ip: "209.131.48.79"
78+
#
79+
# - ssl_cert_name: port99.pem
80+
# dest_ip: "10.0.0.1:99"
81+
#
82+
# - ssl_cert_name: foo.pem
83+
# ssl_key_dialog: "exec:/usr/bin/mypass foo 'ba r'"
84+
#
85+
# - action: tunnel
86+
# dest_ip: "192.168.1.1"
87+
#
88+
# - ssl_cert_name: wildcardcert.pem
89+
# ssl_key_name: privkey.pem
90+
91+
ssl_multicert:

doc/admin-guide/files/index.en.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Configuration Files
3434
records.yaml.en
3535
remap.config.en
3636
splitdns.config.en
37-
ssl_multicert.config.en
37+
ssl_multicert.yaml.en
3838
sni.yaml.en
3939
storage.config.en
4040
strategies.yaml.en
@@ -72,7 +72,7 @@ Configuration Files
7272
:doc:`splitdns.config.en`
7373
Configures DNS servers to use under specific conditions.
7474

75-
:doc:`ssl_multicert.config.en`
75+
:doc:`ssl_multicert.yaml.en`
7676
Configures |TS| to use different server certificates for SSL termination
7777
when listening on multiple addresses or when clients employ SNI.
7878

doc/admin-guide/files/records.yaml.en.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3973,24 +3973,24 @@ SSL Termination
39733973
===== ======================================================================
39743974

39753975

3976-
.. ts:cv:: CONFIG proxy.config.ssl.server.multicert.filename STRING ssl_multicert.config
3976+
.. ts:cv:: CONFIG proxy.config.ssl.server.multicert.filename STRING ssl_multicert.yaml
39773977
:deprecated:
39783978

3979-
The location of the :file:`ssl_multicert.config` file, relative
3979+
The location of the :file:`ssl_multicert.yaml` file, relative
39803980
to the |TS| configuration directory. In the following
39813981
example, if the |TS| configuration directory is
39823982
`/etc/trafficserver`, the |TS| SSL configuration file
39833983
and the corresponding certificates are located in
39843984
`/etc/trafficserver/ssl`::
39853985

3986-
CONFIG proxy.config.ssl.server.multicert.filename STRING ssl/ssl_multicert.config
3986+
CONFIG proxy.config.ssl.server.multicert.filename STRING ssl/ssl_multicert.yaml
39873987
CONFIG proxy.config.ssl.server.cert.path STRING etc/trafficserver/ssl
39883988
CONFIG proxy.config.ssl.server.private_key.path STRING etc/trafficserver/ssl
39893989

39903990
.. ts:cv:: CONFIG proxy.config.ssl.server.multicert.exit_on_load_fail INT 1
39913991
39923992
By default (``1``), |TS| will not start unless all the SSL certificates listed in the
3993-
:file:`ssl_multicert.config` file successfully load. If false (``0``), SSL certificate
3993+
:file:`ssl_multicert.yaml` file successfully load. If false (``0``), SSL certificate
39943994
load failures will not prevent |TS| from starting.
39953995

39963996
.. ts:cv:: CONFIG proxy.config.ssl.server.cert.path STRING /config
@@ -3999,21 +3999,21 @@ SSL Termination
39993999
and validation new SSL sessions. If this is a relative path,
40004000
it is appended to the |TS| installation PREFIX. All
40014001
certificates and certificate chains listed in
4002-
:file:`ssl_multicert.config` will be loaded relative to this path.
4002+
:file:`ssl_multicert.yaml` will be loaded relative to this path.
40034003

40044004
.. ts:cv:: CONFIG proxy.config.ssl.server.private_key.path STRING NULL
40054005
40064006
The location of the SSL certificate private keys. Change this
40074007
variable only if the private key is not located in the SSL
40084008
certificate file. All private keys listed in
4009-
:file:`ssl_multicert.config` will be loaded relative to this
4009+
:file:`ssl_multicert.yaml` will be loaded relative to this
40104010
path.
40114011

40124012
.. ts:cv:: CONFIG proxy.config.ssl.server.cert_chain.filename STRING NULL
40134013
40144014
The name of a file containing a global certificate chain that
40154015
should be used with every server certificate. This file is only
4016-
used if there are certificates defined in :file:`ssl_multicert.config`.
4016+
used if there are certificates defined in :file:`ssl_multicert.yaml`.
40174017
Unless this is an absolute path, it is loaded relative to the
40184018
path specified by :ts:cv:`proxy.config.ssl.server.cert.path`.
40194019

@@ -4522,7 +4522,7 @@ OCSP Stapling Configuration
45224522
The directory path of the prefetched OCSP stapling responses. Change this
45234523
variable only if you intend to use and administratively maintain
45244524
prefetched OCSP stapling responses. All stapling responses listed in
4525-
:file:`ssl_multicert.config` will be loaded relative to this
4525+
:file:`ssl_multicert.yaml` will be loaded relative to this
45264526
path.
45274527

45284528
HTTP/2 Configuration

0 commit comments

Comments
 (0)