Sécurité de la couche de transport (TLS, Transport Layer Security)
Les instances de l’orchestrateur doivent communiquer en toute sécurité avec les systèmes d’accès intégrés, les fournisseurs de secrets et les autres instances de l’orchestrateur.
Le champ tls
indique la configuration des objets de sécurité de la couche transport.
Ces objets TLS sont référencés sous le nom que vous définissez dans la configuration du serveur HTTP de l’orchestrateur (pour les connexions entrantes), et dans les configurations Connector ou AppGateway (pour les connexions sortantes).
Sous Windows, l’orchestrateur peut récupérer des certificats et des clés à partir du Magasin de certificats Windows.
Options de configuration
Cert File
Le fichier certFile
représente un chemin d’accès à un certificat encodé au format PEM.
Key File
Le fichier keyFile
représente un chemin d’accès à une clé privée encodée au format PEM.
CA File
Le fichier caFile
représente un chemin d’accès à une autorité de certification encodée au format PEM que
les clients HTTP utilisent lors de la vérification des certificats de serveur. Si la valeur caFile
n’est pas définie,
l’orchestrateur utilisera par défaut l’ensemble des autorités de certification fiables disponibles sur le système
d’exploitation. Une fois définie, l’autorité de certification fournie sera ajoutée à la réserve d’autorités de certification fiables.
Ce champ est généralement utilisé lorsqu’une autorité de certification auto-signée (non fiable) est utilisée pour
générer des certificats pour des services en amont.
Min Version
La spécification de la valeur minVersion
est facultative et permet d’imposer la version minimale de TLS.
Pour des raisons de sécurité, nous n’autorisons que la spécification de la version TLS 1.2 ou supérieure. Toute version inférieure
à TLS 1.2 entraînera un échec du démarrage de l’orchestrateur. Si elle n’est pas spécifiée,
la version minimale de TLS sera par défaut TLS 1.2.
Enabled Ciphers
enabledCiphers
permet d’activer explicitement une liste de chiffrements. Par défaut,
l’orchestrateur utilise les suites de chiffrement figurant dans la liste des suites de chiffrement sécurisées ci-dessous. Cette
fonctionnalité est facultative et disponible uniquement avec TLS 1.2.
En cas d’utilisation de TLS 1.3, les suites de chiffrement ne sont pas configurables.
En cas d’utilisation de TLS 1.2 (option par défaut), les suites de chiffrement de la liste sécurisée ci-dessous sont utilisées.
En cas d’utilisation de TLS 1.2 en conjonction avec la configuration enabledCiphers
, les suites de chiffrement de
la liste suivante sont disponibles mais doivent être répertoriées explicitement. Seuls les algorithmes de chiffrement
spécifiés seront utilisés.
Pour une liste à jour des suites de chiffrement fiables et
vulnérables, veuillez
consulter la documentation Golang. Veuillez noter que lors de l’établissement de la liste des algorithmes de chiffrement dans la configuration,
le nom en majuscule doit être utilisé (par exemple TLS_AES_256_GCM_SHA3843
).
Insecure Skip Verify
L’option insecureSkipVerify
ne doit être utilisée que pour les tests. Si la valeur est définie sur true
,
le client HTTP ne validera pas la chaîne de certificats et le nom d’hôte du serveur. Cette
option n’est pas adaptée à la configuration TLS utilisée pour le serveur HTTP de l’orchestrateur,
et doit toujours être utilisée avec la plus grande prudence.
Magasin de certificats Windows
Si vous exécutez l’orchestrateur sous Windows, vous pouvez importer les certificats dans le magasin ComputerHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY
et définir la configuration TLS pour récupérer les certificats et leurs clés dans le magasin de certificats Windows
via le sujet ou l’empreinte.
Par exemple, pour effectuer une recherche par sujet :
tls:
maverics:
windowsCertStore:
subject: "MySiteCert"
Pour effectuer une recherche par empreinte :
tls:
maverics:
windowsCertStore:
thumbprint: 838A1C18C19FREDACTED47CC21071A0F220617466
Vous pouvez également utiliser une variable d’environnement pour effectuer une recherche dans le magasin de certificats Windows.
MAVERICS_TLS_SERVER_WINDOWS_THUMBPRINT
: pour effectuer une recherche par empreinte.
MAVERICS_TLS_SERVER_WINDOWS_SUBJECT
: pour effectuer une recherche par sujet.
La clé windowsCertStore
ne peut être combinée avec aucune combinaison de fichier certFile
ou keyFile
. Les méthodes de recherche par empreinte
et par sujet
sont par ailleurs incompatibles
et ne peuvent pas être utilisées ensemble dans la section windowsCertStore
. De plus, les certificats doivent être importés dans le magasin Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY
.
Exemples
http:
address: :443
tls: maverics
tls:
maverics:
certFile: certs/sonarsystems.crt
keyFile: certs/sonarsystems.key
ldapTLS:
caFile: certs/privCA.crt
minVersion: 1.3
ldapTLSLegacy:
caFile: certs/privCA-old.crt
minVersion: 1.2
enabledCiphers:
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
ldapTestTLS:
insecureSkipVerify: true
connectors:
- name: ldapProd
type: ldap
tls: ldapTLS
# ...
- name: ldapLegacy
type: ldap
tls: ldapTLSLegacy
# ...
- name: ldapTest
type: ldap
tls: ldapTestTLS
# ...
Utilisation d’un fournisseur de secrets
Les certificats et les clés peuvent être obtenus auprès des fournisseurs de secrets :
tls:
maverics:
certFile: <sonarsystems-cert>
keyFile: <sonarsystems-key>
TLS entrant
Lors de la configuration du protocole TLS pour le serveur HTTP de l’orchestrateur, indiquez les chemins d’accès certFile
et
keyFile
qui conduisent à une paire de clés codées au format PEM.
tls:
maverics:
certFile: certs/sonarsystems.crt.pem
keyFile: certs/sonarsystems.key.pem
http:
address: :443
tls: maverics
TLS sortant
Il est courant pour les entreprises d’utiliser leur propre autorité de certification pour les applications internes. Si une autorité de certification (CA, Certificate Authority) n’a pas déjà été ajoutée à l’ensemble des CA approuvées par les hôtes, la configuration ci-dessous peut être utilisée.
tls:
ldapTLS:
caFile: certs/internal-non-root-ca.crt
connectors:
- name: ldapProd
type: ldap
tls: ldapTLS
# ...