unencrypted listening address `listen_addr` and an encrypted listening
and repeated below.
address `tls_listen_addr` at the same time. This allows you to do a
gradual transition from unencrypted to encrypted traffic, if necessary.
Note the following:
- The certificate must specify the address you use to access the Gitaly server. If you are:
- Addressing the Gitaly server by a hostname, you can either use the Common Name field for this,
or add it as a Subject Alternative Name.
- Addressing the Gitaly server by its IP address, you must add it as a Subject Alternative Name to
the certificate. [gRPC does not support using an IP address as Common Name in a certificate](https://github.com/grpc/grpc/issues/2691).
- You can configure Gitaly servers with both an unencrypted listening address `listen_addr` and an
encrypted listening address `tls_listen_addr` at the same time. This allows you to gradually
transition from unencrypted to encrypted traffic if necessary.
To configure Gitaly with TLS:
To configure Gitaly with TLS:
**For Omnibus GitLab**
**For Omnibus GitLab**
1. Create certificates for Gitaly servers.
1. Create certificates for Gitaly servers.
1. On the Gitaly clients, copy the certificates, or their certificate authority, into the `/etc/gitlab/trusted-certs`:
1. On the Gitaly clients, copy the certificates (or their certificate authority) into
`/etc/gitlab/trusted-certs`:
```shell
```shell
sudo cp cert.pem /etc/gitlab/trusted-certs/
sudo cp cert.pem /etc/gitlab/trusted-certs/
...
@@ -542,7 +550,8 @@ To configure Gitaly with TLS:
...
@@ -542,7 +550,8 @@ To configure Gitaly with TLS:
```
```
1. Save the file and [reconfigure GitLab](../restart_gitlab.md#omnibus-gitlab-reconfigure).
1. Save the file and [reconfigure GitLab](../restart_gitlab.md#omnibus-gitlab-reconfigure).
1. On the Gitaly servers, create the `/etc/gitlab/ssl` directory and copy your key and certificate there:
1. On the Gitaly servers, create the `/etc/gitlab/ssl` directory and copy your key and certificate
there:
```shell
```shell
sudo mkdir-p /etc/gitlab/ssl
sudo mkdir-p /etc/gitlab/ssl
...
@@ -551,8 +560,9 @@ To configure Gitaly with TLS:
...
@@ -551,8 +560,9 @@ To configure Gitaly with TLS:
sudo chmod 644 key.pem cert.pem
sudo chmod 644 key.pem cert.pem
```
```
1. Copy all Gitaly server certificates, or their certificate authority, to `/etc/gitlab/trusted-certs` so Gitaly server will trust the certificate when
1. Copy all Gitaly server certificates (or their certificate authority) to
calling into itself or other Gitaly servers:
`/etc/gitlab/trusted-certs` so that Gitaly servers will trust the certificate when calling into themselves
@@ -605,9 +618,9 @@ calling into itself or other Gitaly servers:
...
@@ -605,9 +618,9 @@ calling into itself or other Gitaly servers:
```
```
NOTE: **Note:**
NOTE: **Note:**
`/some/dummy/path` should be set to a local folder that exists, however no
`/some/dummy/path` should be set to a local folder that exists, however no data will be stored
data will be stored in this folder. This will no longer be necessary after
in this folder. This will no longer be necessary after
[this issue](https://gitlab.com/gitlab-org/gitaly/-/issues/1282) is resolved.
[Gitaly issue #1282](https://gitlab.com/gitlab-org/gitaly/-/issues/1282) is resolved.
1. Save the file and [restart GitLab](../restart_gitlab.md#installations-from-source).
1. Save the file and [restart GitLab](../restart_gitlab.md#installations-from-source).
1. On the Gitaly servers, create or edit `/etc/default/gitlab` and add:
1. On the Gitaly servers, create or edit `/etc/default/gitlab` and add:
...
@@ -625,7 +638,9 @@ calling into itself or other Gitaly servers:
...
@@ -625,7 +638,9 @@ calling into itself or other Gitaly servers:
sudo chmod 644 key.pem cert.pem
sudo chmod 644 key.pem cert.pem
```
```
1. Copy all Gitaly server certificates, or their certificate authority, to the system trusted certificates so Gitaly server will trust the certificate when calling into itself or other Gitaly servers.
1. Copy all Gitaly server certificates (or their certificate authority) to the system trusted
certificates folder so Gitaly server will trust the certificate when calling into itself or other Gitaly