doc-locale/fr-fr/administration/gitaly/tls_support.md
Gitaly prend en charge le chiffrement TLS. Pour communiquer avec une instance Gitaly qui écoute les connexions sécurisées, utilisez le schéma d'URL tls:// dans le paramètre gitaly_address de l'entrée de stockage correspondante dans la configuration GitLab.
Gitaly fournit les mêmes certificats de serveur que les certificats client dans les connexions TLS à GitLab. Cela peut être utilisé dans le cadre d'une stratégie d'authentification TLS mutuelle, lorsqu'elle est combinée avec des proxys inverses (par exemple, NGINX) qui valident le certificat client pour accorder l'accès à GitLab.
Vous devez fournir vos propres certificats, car cela n'est pas fourni automatiquement. Le certificat correspondant à chaque serveur Gitaly doit être installé sur ce serveur Gitaly.
De plus, le certificat (ou son autorité de certification) doit être installé sur tous les éléments suivants :
Si vous utilisez un équilibreur de charge, il doit être capable de négocier HTTP/2 à l'aide de l'extension TLS ALPN.
listen_addr et une adresse d'écoute chiffrée tls_listen_addr en même temps. Cela vous permet de passer progressivement du trafic non chiffré au trafic chiffré si nécessaire.{{< history >}}
{{< /history >}}
Configurez Gitaly avant de configurer la prise en charge TLS.
Le processus de configuration de la prise en charge TLS dépend de votre type d'installation.
{{< tabs >}}
{{< tab title="Linux package (Omnibus)" >}}
Créez des certificats pour les serveurs Gitaly.
Sur les clients Gitaly, copiez les certificats (ou leur autorité de certification) dans /etc/gitlab/trusted-certs :
sudo cp cert.pem /etc/gitlab/trusted-certs/
Sur les clients Gitaly, modifiez gitlab_rails['repositories_storages'] dans /etc/gitlab/gitlab.rb comme suit :
gitlab_rails['repositories_storages'] = {
'default' => { 'gitaly_address' => 'tls://gitaly1.internal:9999' },
'storage1' => { 'gitaly_address' => 'tls://gitaly1.internal:9999' },
'storage2' => { 'gitaly_address' => 'tls://gitaly2.internal:9999' },
}
Enregistrez le fichier et reconfigurez GitLab.
Sur les serveurs Gitaly, créez le répertoire /etc/gitlab/ssl et copiez-y votre clé et votre certificat :
sudo mkdir -p /etc/gitlab/ssl
sudo chmod 755 /etc/gitlab/ssl
sudo cp key.pem cert.pem /etc/gitlab/ssl/
sudo chmod 644 /etc/gitlab/ssl/cert.pem
sudo chmod 600 /etc/gitlab/ssl/key.pem
# For Linux package installations, 'git' is the default username. Modify the following command if it was changed from the default
sudo chown -R git /etc/gitlab/ssl
Copiez tous les certificats de serveur Gitaly (ou leur autorité de certification) dans /etc/gitlab/trusted-certs sur tous les serveurs et clients Gitaly, afin que les serveurs et clients Gitaly fassent confiance au certificat lorsqu'ils s'appellent eux-mêmes ou d'autres serveurs Gitaly :
sudo cp cert1.pem cert2.pem /etc/gitlab/trusted-certs/
Modifiez /etc/gitlab/gitlab.rb et ajoutez :
gitaly['configuration'] = {
# ...
tls_listen_addr: '0.0.0.0:9999',
tls: {
certificate_path: '/etc/gitlab/ssl/cert.pem',
key_path: '/etc/gitlab/ssl/key.pem',
## Optionally configure the minimum TLS version Gitaly offers to clients.
##
## Default: "TLS 1.2"
## Options: ["TLS 1.2", "TLS 1.3"].
#
# min_version: "TLS 1.2"
},
}
Enregistrez le fichier et reconfigurez GitLab.
Exécutez sudo gitlab-rake gitlab:gitaly:check sur le client Gitaly (par exemple, l'application Rails) pour confirmer qu'il peut se connecter aux serveurs Gitaly.
Vérifiez que le trafic Gitaly est servi via TLS en observant les types de connexions Gitaly.
Facultatif. Améliorez la sécurité en :
gitaly['configuration'][:listen_addr] dans /etc/gitlab/gitlab.rb.{{< /tab >}}
{{< tab title="Self-compiled (source)" >}}
Créez des certificats pour les serveurs Gitaly.
Sur les clients Gitaly, copiez les certificats dans les certificats de confiance du système :
sudo cp cert.pem /usr/local/share/ca-certificates/gitaly.crt
sudo update-ca-certificates
Sur les clients Gitaly, modifiez storages dans /home/git/gitlab/config/gitlab.yml pour remplacer gitaly_address par une adresse TLS. Par exemple :
gitlab:
repositories:
storages:
default:
gitaly_address: tls://gitaly1.internal:9999
gitaly_token: AUTH_TOKEN_1
storage1:
gitaly_address: tls://gitaly1.internal:9999
gitaly_token: AUTH_TOKEN_1
storage2:
gitaly_address: tls://gitaly2.internal:9999
gitaly_token: AUTH_TOKEN_2
Enregistrez le fichier et redémarrez GitLab.
Sur les serveurs Gitaly, créez ou modifiez /etc/default/gitlab et ajoutez :
export SSL_CERT_DIR=/etc/gitlab/ssl
Sur les serveurs Gitaly, créez le répertoire /etc/gitlab/ssl et copiez-y votre clé et votre certificat :
sudo mkdir -p /etc/gitlab/ssl
sudo chmod 755 /etc/gitlab/ssl
sudo cp key.pem cert.pem /etc/gitlab/ssl/
sudo chmod 644 /etc/gitlab/ssl/cert.pem
sudo chmod 600 /etc/gitlab/ssl/key.pem
# Set ownership to the same user that runs Gitaly
sudo chown -R git /etc/gitlab/ssl
Copiez tous les certificats de serveur Gitaly (ou leur autorité de certification) dans le dossier des certificats de confiance du système afin que le serveur Gitaly fasse confiance au certificat lorsqu'il s'appelle lui-même ou d'autres serveurs Gitaly.
sudo cp cert.pem /usr/local/share/ca-certificates/gitaly.crt
sudo update-ca-certificates
Modifiez /home/git/gitaly/config.toml et ajoutez :
tls_listen_addr = '0.0.0.0:9999'
[tls]
certificate_path = '/etc/gitlab/ssl/cert.pem'
key_path = '/etc/gitlab/ssl/key.pem'
Enregistrez le fichier et redémarrez GitLab.
Vérifiez que le trafic Gitaly est servi via TLS en observant les types de connexions Gitaly.
Facultatif. Améliorez la sécurité en :
listen_addr dans /home/git/gitaly/config.toml.{{< /tab >}}
{{< /tabs >}}
Pour mettre à jour les certificats Gitaly après la configuration initiale :
{{< tabs >}}
{{< tab title="Linux package (Omnibus)" >}}
Si le contenu de vos certificats SSL dans le répertoire /etc/gitlab/ssl a été mis à jour, mais qu'aucune modification de configuration n'a été apportée à /etc/gitlab/gitlab.rb, la reconfiguration de GitLab n'affecte pas Gitaly. À la place, vous devez redémarrer Gitaly manuellement pour que les certificats soient chargés par le processus Gitaly :
sudo gitlab-ctl restart gitaly
Si vous modifiez ou mettez à jour les certificats dans /etc/gitlab/trusted-certs sans apporter de modifications au fichier /etc/gitlab/gitlab.rb, vous devez :
Reconfigurer GitLab afin que les liens symboliques des certificats de confiance soient mis à jour.
Redémarrez Gitaly manuellement pour que les certificats soient chargés par le processus Gitaly :
sudo gitlab-ctl restart gitaly
{{< /tab >}}
{{< tab title="Self-compiled (source)" >}}
Si le contenu de vos certificats SSL dans le répertoire /etc/gitlab/ssl a été mis à jour, vous devez redémarrer GitLab pour que les certificats soient chargés par le processus Gitaly.
Si vous modifiez ou mettez à jour les certificats dans /usr/local/share/ca-certificates, vous devez :
sudo update-ca-certificates pour mettre à jour le magasin de confiance du système.{{< /tab >}}
{{< /tabs >}}
Pour obtenir des informations sur l'observation du type de connexions Gitaly servies, consultez la documentation correspondante.