Skip to content

Commit 766f226

Browse files
committed
Connection settings: update per review
1 parent 61651a8 commit 766f226

File tree

1 file changed

+68
-65
lines changed

1 file changed

+68
-65
lines changed

doc/concepts/configuration/configuration_connections.rst

Lines changed: 68 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ In this case, this port is used for all IP addresses the server listens on.
7272
SSL parameters
7373
~~~~~~~~~~~~~~
7474

75-
You can enable :ref:`traffic encryption <configuration_connections_ssl>` for a connection using the ``params`` section of the specified URI:
75+
In the Enterprise Edition, you can enable :ref:`traffic encryption <configuration_connections_ssl>` for a connection using the ``params`` section of the specified URI:
7676

7777
.. literalinclude:: /code_snippets/snippets/replication/instances.enabled/ssl_without_ca/config.yaml
7878
:language: yaml
@@ -102,15 +102,17 @@ For local development, you can enable communication between cluster members by u
102102
Advertise settings
103103
------------------
104104

105-
Advertise settings (:ref:`iproto.advertise.* <configuration_reference_iproto_advertise>`) let other cluster members or clients know how to connect to the current Tarantool instance.
106-
These settings might include the credentials required to connect to this instance, a URI used to listen for incoming requests, and SSL settings.
105+
Advertise settings (:ref:`iproto.advertise.* <configuration_reference_iproto_advertise>`) let other cluster members or clients know how to connect to the current Tarantool instance:
107106

108-
If an advertise URI is not specified explicitly, a :ref:`listen URI <configuration_connections_listen_uri>` of this instance is used.
109-
In this case, you need at least to specify credentials for connecting to this instance.
107+
- ``iproto.advertise.peer`` specifies how to advertise the instance to other cluster members.
108+
- ``iproto.advertise.sharding`` specifies how to advertise the instance to a router and rebalancer.
109+
- ``iproto.advertise.client`` accepts a URI used to advertise the instance to clients.
110+
111+
``iproto_advertise.<peer_or_sharding>`` might include the credentials required to connect to this instance, a URI used to listen for incoming requests, and SSL settings.
110112

111-
.. NOTE::
113+
If ``iproto_advertise.<peer_or_sharding>.uri`` is not specified explicitly, a :ref:`listen URI <configuration_connections_listen_uri>` of this instance is used.
114+
In this case, you need at least to specify credentials for connecting to this instance.
112115

113-
If several listen URIs are specified, the first one is used as an advertise URI.
114116

115117
.. _configuration_connections_advertise_credentials:
116118

@@ -160,55 +162,9 @@ The ``iproto_advertise.<peer_or_sharding>.uri`` option can also accept an FQDN i
160162
peer:
161163
uri: 'server001.example.com:3301'
162164
165+
To learn about the specifics of configuring an advertise URI’s SSL settings, see :ref:`configuration_connections_ssl_advertise_uri`.
163166

164-
.. _configuration_connections_advertise_uri_ssl:
165-
166-
SSL parameters
167-
~~~~~~~~~~~~~~
168-
169-
:ref:`SSL parameters <configuration_connections_ssl>` for an advertise URI should be set only if this :ref:`advertise URI is specified explicitly <configuration_connections_advertise_explicitly>`.
170-
Otherwise, SSL parameters of a listen URI are used and no additional configuration is required.
171-
172-
Configuring an advertise URI's SSL options depends on whether a trusted certificate authorities (CA) file is set or not.
173-
Without the CA file, you only need to set ``iproto_advertise.<peer_or_sharding>.params.transport`` to ``ssl`` as shown below:
174-
175-
.. code-block:: yaml
176-
177-
instance001:
178-
iproto:
179-
listen:
180-
- uri: '192.168.0.101:3301'
181-
params:
182-
transport: 'ssl'
183-
ssl_cert_file: 'certs/server.crt'
184-
ssl_key_file: 'certs/server.key'
185-
advertise:
186-
peer:
187-
uri: 'server.example.com:3301'
188-
params:
189-
transport: 'ssl'
190-
191-
192-
If the CA file is specified for a listen URI, you also need to configure ``ssl_cert_file`` and ``ssl_key_file`` for this advertise URI:
193-
194-
.. code-block:: yaml
195167

196-
instance001:
197-
iproto:
198-
listen:
199-
- uri: '192.168.0.101:3301'
200-
params:
201-
transport: 'ssl'
202-
ssl_ca_file: 'certs/root_ca.crt'
203-
ssl_cert_file: 'certs/instance001/server001.crt'
204-
ssl_key_file: 'certs/instance001/server001.key'
205-
advertise:
206-
peer:
207-
uri: 'server001.example.com:3301'
208-
params:
209-
transport: 'ssl'
210-
ssl_cert_file: 'certs/instance001/server001.crt'
211-
ssl_key_file: 'certs/instance001/server001.key'
212168

213169

214170
.. _configuration_connections_ssl:
@@ -226,9 +182,6 @@ Securing connections with SSL
226182
Tarantool supports the use of SSL connections to encrypt client-server communications for increased security.
227183
To enable SSL, use the :ref:`<uri>.params.* <configuration_reference_iproto_uri_params>` options, which can be applied to both listen and advertise URIs.
228184

229-
This section shows how to configure SSL settings for a listen URI.
230-
To learn about the specifics of configuring an advertise URI's SSL settings, see :ref:`SSL parameters <configuration_connections_advertise_uri_ssl>`.
231-
232185

233186
.. _configuration_connections_ssl_without_ca:
234187

@@ -238,8 +191,8 @@ Without CA
238191
The example below demonstrates how to enable traffic encryption by using a self-signed server certificate.
239192
The following parameters are specified for each instance:
240193

241-
- ``ssl_cert_file``: a path to an SSL certificate file.
242-
- ``ssl_key_file``: a path to a private SSL key file.
194+
- :ref:`ssl_cert_file <configuration_reference_iproto_uri_params_ssl_cert_file>`: a path to an SSL certificate file.
195+
- :ref:`ssl_key_file <configuration_reference_iproto_uri_params_ssl_key_file>`: a path to a private SSL key file.
243196

244197
.. literalinclude:: /code_snippets/snippets/replication/instances.enabled/ssl_without_ca/config.yaml
245198
:language: yaml
@@ -259,12 +212,12 @@ In this case, all replica set peers verify each other for authenticity.
259212

260213
The following parameters are specified for each instance:
261214

262-
- ``ssl_ca_file``: a path to a trusted certificate authorities (CA) file.
263-
- ``ssl_cert_file``: a path to an SSL certificate file.
264-
- ``ssl_key_file``: a path to a private SSL key file.
265-
- ``ssl_password`` (``instance001``): a password for an encrypted private SSL key.
266-
- ``ssl_password_file`` (``instance002`` and ``instance003``): a text file containing passwords for encrypted SSL keys.
267-
- ``ssl_ciphers``: a colon-separated list of SSL cipher suites the connection can use.
215+
- :ref:`ssl_ca_file <configuration_reference_iproto_uri_params_ssl_ca_file>`: a path to a trusted certificate authorities (CA) file.
216+
- :ref:`ssl_cert_file <configuration_reference_iproto_uri_params_ssl_cert_file>`: a path to an SSL certificate file.
217+
- :ref:`ssl_key_file <configuration_reference_iproto_uri_params_ssl_key_file>`: a path to a private SSL key file.
218+
- :ref:`ssl_password <configuration_reference_iproto_uri_params_ssl_password>` (``instance001``): a password for an encrypted private SSL key.
219+
- :ref:`ssl_password_file <configuration_reference_iproto_uri_params_ssl_password_file>` (``instance002`` and ``instance003``): a text file containing passwords for encrypted SSL keys.
220+
- :ref:`ssl_ciphers <configuration_reference_iproto_uri_params_ssl_ciphers>`: a colon-separated list of SSL cipher suites the connection can use.
268221

269222
.. literalinclude:: /code_snippets/snippets/replication/instances.enabled/ssl_with_ca/config.yaml
270223
:language: yaml
@@ -275,6 +228,56 @@ The following parameters are specified for each instance:
275228
You can find the full example here: `ssl_with_ca <https://github.com/tarantool/doc/tree/latest/doc/code_snippets/snippets/replication/instances.enabled/ssl_with_ca>`_.
276229

277230

231+
.. _configuration_connections_ssl_advertise_uri:
232+
233+
Advertise URI specifics
234+
~~~~~~~~~~~~~~~~~~~~~~~
235+
236+
SSL parameters for an advertise URI should be set only if this :ref:`advertise URI is specified explicitly <configuration_connections_advertise_explicitly>`.
237+
Otherwise, SSL parameters of a listen URI are used and no additional configuration is required.
238+
239+
Configuring an advertise URI's SSL options depends on whether a trusted certificate authorities (CA) file is set or not.
240+
Without the CA file, you only need to set ``iproto_advertise.<peer_or_sharding>.params.transport`` to ``ssl`` as shown below:
241+
242+
.. code-block:: yaml
243+
244+
instance001:
245+
iproto:
246+
listen:
247+
- uri: '192.168.0.101:3301'
248+
params:
249+
transport: 'ssl'
250+
ssl_cert_file: 'certs/server.crt'
251+
ssl_key_file: 'certs/server.key'
252+
advertise:
253+
peer:
254+
uri: 'server.example.com:3301'
255+
params:
256+
transport: 'ssl'
257+
258+
259+
If the CA file is specified for a listen URI, you also need to configure ``ssl_cert_file`` and ``ssl_key_file`` for this advertise URI:
260+
261+
.. code-block:: yaml
262+
263+
instance001:
264+
iproto:
265+
listen:
266+
- uri: '192.168.0.101:3301'
267+
params:
268+
transport: 'ssl'
269+
ssl_ca_file: 'certs/root_ca.crt'
270+
ssl_cert_file: 'certs/instance001/server001.crt'
271+
ssl_key_file: 'certs/instance001/server001.key'
272+
advertise:
273+
peer:
274+
uri: 'server001.example.com:3301'
275+
params:
276+
transport: 'ssl'
277+
ssl_cert_file: 'certs/instance001/server001.crt'
278+
ssl_key_file: 'certs/instance001/server001.key'
279+
280+
278281
279282
.. _configuration_connections_ssl_reloading_certificates:
280283

0 commit comments

Comments
 (0)