Skip to content

Commit 89f3e68

Browse files
skerschbkay-kim
authored andcommitted
DOCS-11426: Windows and Mac secure store
1 parent 395c8be commit 89f3e68

File tree

10 files changed

+145
-4
lines changed

10 files changed

+145
-4
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
The following selectors are available.
2+
3+
.. list-table::
4+
:header-rows: 1
5+
:widths: auto
6+
7+
* - property name
8+
- value type
9+
- value description
10+
11+
* - subject
12+
- ASCII string
13+
- subject name or common name on certificate
14+
* - thumbprint
15+
- hex string
16+
- certificate thumbprint
17+
18+
.. note::
19+
20+
The term ``thumbprint`` refers to what is also frequently
21+
referred to as a ``fingerprint``. It is a short sequence of bytes used
22+
to identify a longer public key.

source/includes/options-conf.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,30 @@ inherit:
626626
file: options-mongod.yaml
627627
---
628628
program: conf
629+
name: net.ssl.certificateSelector
630+
type: string
631+
directive: setting
632+
replacement:
633+
program: ":binary:`~bin.mongos` or :binary:`~bin.mongod`"
634+
directive: "setting"
635+
inherit:
636+
name: sslCertificateSelector
637+
program: mongod
638+
file: options-mongod.yaml
639+
---
640+
program: conf
641+
name: net.ssl.clusterCertificateSelector
642+
type: string
643+
directive: setting
644+
replacement:
645+
program: ":binary:`~bin.mongos` or :binary:`~bin.mongod`"
646+
directive: "setting"
647+
inherit:
648+
name: sslClusterCertificateSelector
649+
program: mongod
650+
file: options-mongod.yaml
651+
---
652+
program: conf
629653
name: net.ssl.PEMKeyFile
630654
type: string
631655
directive: setting

source/includes/options-mongod.yaml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1216,14 +1216,40 @@ description: |
12161216
Mac system certificate store mechanisms.
12171217
12181218
This option must be followed by a key value pair indicated by
1219-
<parameter>=<value>. In this case parameter is the name of the
1219+
<parameter>=<value>. In this case, <parameter> is the name of the
12201220
selector.
12211221
12221222
.. include:: /includes/option-ssl-certificateSelector.rst
12231223
12241224
optional: true
12251225
---
12261226
program: mongod
1227+
<<<<<<< HEAD
1228+
=======
1229+
name: sslClusterCertificateSelector
1230+
args: <parameter>=<value>
1231+
directive: option
1232+
description: |
1233+
1234+
.. versionadded:: 4.0
1235+
1236+
Specifies the selector and value to search when using Windows or
1237+
Mac system certificate store mechanisms for internal SSL authentication.
1238+
1239+
This option must be followed by a key value pair indicated by
1240+
<parameter>=<value>. In this case, <parameter> is the name of the
1241+
selector.
1242+
1243+
This option is only valid when set in conjuction with a
1244+
:setting:`~net.ssl.certificateSelector` and associated selector <parameter>=<value>
1245+
pair to indicate which certificate should be used for non-internal connections.
1246+
1247+
.. include:: /includes/option-ssl-clusterCertificateSelector.rst
1248+
1249+
optional: true
1250+
---
1251+
program: mongod
1252+
>>>>>>> DOCS-11426: Windows and Mac secure store
12271253
name: sslOnNormalPorts
12281254
args: null
12291255
directive: option

source/includes/options-mongos.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,13 @@ inherit:
266266
file: options-mongod.yaml
267267
---
268268
program: mongos
269+
name: sslClusterCertificateSelector
270+
inherit:
271+
name: sslClusterCertificateSelector
272+
program: mongod
273+
file: options-mongod.yaml
274+
---
275+
program: mongos
269276
name: sslMode
270277
inherit:
271278
name: sslMode

source/reference/configuration-options.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ Core Options
265265
ssl:
266266
sslOnNormalPorts: <boolean> # deprecated since 2.6
267267
certificateSelector: <string>
268+
clusterCertificateSelector: <string>
268269
mode: <string>
269270
PEMKeyFile: <string>
270271
PEMKeyPassword: <string>
@@ -329,6 +330,8 @@ Core Options
329330
mode: <string>
330331
PEMKeyFile: <string>
331332
PEMKeyPassword: <string>
333+
certificateSelector: <string>
334+
clusterCertificateSelector: <string>
332335
clusterFile: <string>
333336
clusterPassword: <string>
334337
CAFile: <string>
@@ -347,6 +350,10 @@ Core Options
347350

348351
.. include:: /includes/option/setting-conf-net.ssl.PEMKeyPassword.rst
349352

353+
.. include:: /includes/option/setting-conf-net.ssl.certificateSelector.rst
354+
355+
.. include:: /includes/option/setting-conf-net.ssl.clusterCertificateSelector.rst
356+
350357
.. include:: /includes/option/setting-conf-net.ssl.clusterFile.rst
351358

352359
.. include:: /includes/option/setting-conf-net.ssl.clusterPassword.rst

source/reference/program/mongod.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,8 @@ TLS/SSL Options
263263

264264
.. include:: /includes/option/option-mongod-sslCertificateSelector.rst
265265

266+
.. include:: /includes/option/option-mongod-sslClusterCertificateSelector.rst
267+
266268
.. include:: /includes/option/option-mongod-sslClusterPassword.rst
267269

268270
.. include:: /includes/option/option-mongod-sslCAFile.rst

source/reference/program/mongos.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ TLS/SSL Options
131131

132132
.. include:: /includes/option/option-mongos-sslCertificateSelector.rst
133133

134+
.. include:: /includes/option/option-mongod-sslClusterCertificateSelector.rst
135+
134136
.. include:: /includes/option/option-mongos-sslCRLFile.rst
135137

136138
.. include:: /includes/option/option-mongos-sslAllowConnectionsWithoutCertificates.rst

source/release-notes/4.0.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -436,12 +436,19 @@ CA, specify that CA using :setting:`net.ssl.CAFile`.
436436
Enable System Store for SSL on Windows and Mac
437437
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
438438

439-
The :option:`--sslCertificateSelector <mongo --sslCertificateSelector>` option
440-
(:setting:`net.ssl.certificateSelector` setting) allows
439+
The :option:`--sslCertificateSelector <mongod --sslCertificateSelector>`
440+
option (:setting:`~net.ssl.certificateSelector` setting) allows
441441
:binary:`~bin.mongod`, :binary:`~bin.mongo` shell and
442-
:binary:`~bin.mongos` to use system ssl certificate stores for Windows
442+
:binary:`~bin.mongos` to use system SSL certificate stores for Windows
443443
and Mac.
444444

445+
The :option:`--sslClusterCertificateSelector <mongod
446+
--sslClusterCertificateSelector>` option
447+
(:setting:`~net.ssl.clusterCertificateSelector` setting) allows
448+
:binary:`~bin.mongod` and
449+
:binary:`~bin.mongos` to use system SSL certificate stores for Windows
450+
and Mac for internal SSL communication within a cluster.
451+
445452

446453
Deprecate MMAPv1
447454
----------------

source/tutorial/configure-ssl-clients.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ settings, including:
5858
- :option:`--sslCertificateSelector <mongo --sslCertificateSelector>` option if you
5959
wish to use the system store for clients running on Mac or Windows.
6060

61+
.. include:: /includes/extracts/mongo-ssl-options-configure.rst
62+
63+
.. include:: /includes/extracts/clients-warning-sslCAFile.rst
64+
6165
For a complete list of the :binary:`~bin.mongo` shell's TLS/SSL settings, see
6266
:ref:`mongo-shell-ssl`.
6367

source/tutorial/upgrade-cluster-to-ssl.txt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,46 @@ process:
6969
TLS/SSL with ``certificateSelector``.
7070

7171

72+
73+
.. versionadded:: 4.0
74+
75+
#. For Windows and Mac instances running with system certificate stores,
76+
configure the appropriate selectors. You can use system certificates
77+
for communication between
78+
79+
.. include:: /includes/ssl-trusted-store.rst
80+
81+
.. code-block:: sh
82+
83+
mongod --sslMode requireSSL --sslCertificateSelector subject=my.dev.server
84+
85+
To enable encryption internally, between members of a cluster use
86+
:option:`--sslClusterCertificateSelector <mongod
87+
--sslClusterCertificateSelector>`. Note that you will likely want to
88+
use a different certificate for internal communication.
89+
90+
.. code-block:: sh
91+
mongod --sslMode requireSSL --sslCertificateSelector subject=my.dev.server --sslClusterCertificateSelector subject=my.shard.server
92+
93+
Alternatively, use the :setting:`~net.ssl.certificateSelector` and/or
94+
:setting:`~net.ssl.clusterCertificateSelector` to configure the
95+
certificate storage selector with a config file.
96+
97+
.. code-block:: yaml
98+
99+
net:
100+
ssl:
101+
clusterCertificateSelector: <parameter>=<value>
102+
certificateSelector: <parameter>=<value>
103+
104+
.. tip::
105+
106+
If you are using :option:`--sslCertificateSelector <mongod --sslCertificateSelector>` or
107+
:setting:`~net.ssl.certificateSelector`, the :option:`--sslPEMKeyFile
108+
<mongod --sslPEMKeyFile>` is invalid. OCSP (Online Certificate Status Protocol) is
109+
used to validate the revocation status of certificates.
110+
111+
72112
#. Switch all clients to use TLS/SSL. See :ref:`ssl-clients`.
73113

74114
#. For each node of a cluster, use the :dbcommand:`setParameter`

0 commit comments

Comments
 (0)