Aller au contenu principal

Sécurité réseau

Pour des raisons de sécurité, Semaphore ne doit pas être utilisé via HTTP non chiffré !

Pourquoi utiliser des connexions chiffrées ? Voir : Article de Cloudflare.

Options disponibles :


VPN

Vous pouvez utiliser un VPN client-à-site, terminé sur le serveur Semaphore, pour chiffrer et sécuriser la connexion.

TLS

Semaphore prend en charge SSL/TLS à partir de la version 2.12.

config.json :

{
...
"tls": {
"enabled": true,
"cert_file": "/path/to/cert/example.com.cert",
"key_file": "/path/to/key/example.com.key"
}
...
}

Ou via des variables d'environnement (utile pour Docker) :

export SEMAPHORE_TLS_ENABLED=True
export SEMAPHORE_TLS_CERT_FILE=/path/to/cert/example.com.cert
export SEMAPHORE_TLS_KEY_FILE=/path/to/key/example.com.key

Écouteur de redirection HTTP vers HTTPS

Pour configurer l'écouteur de redirection HTTP vers HTTPS, ajoutez l'un des champs suivants au bloc tls de config.json, ou définissez la variable d'environnement correspondante.

Utilisez http_redirect_addr pour lier l'écouteur à une adresse IP et un port spécifiques. Utilisez http_redirect_port pour écouter sur toutes les interfaces réseau. Ces options sont mutuellement exclusives.

Lier l'écouteur de redirection HTTP àconfig.json (bloc tls)Variable d'environnement
Une adresse IP et un port spécifiques"http_redirect_addr": "172.29.184.90:80"SEMAPHORE_TLS_HTTP_REDIRECT_ADDR=172.29.184.90:80
Toutes les interfaces réseau sur un port"http_redirect_port": 80SEMAPHORE_TLS_HTTP_REDIRECT_PORT=80

Reverse proxy

Vous pouvez également utiliser un reverse proxy devant Semaphore pour gérer les connexions sécurisées. Par exemple :

Certificat SSL auto-signé

Vous pouvez générer votre propre certificat SSL à l'aide de l'outil en ligne de commande openssl :

openssl req -x509 -newkey rsa:4096 \
-keyout key.pem -out cert.pem \
-sha256 -days 3650 -nodes \
-subj "/C=US/ST=California/L=San Francisco/O=CompanyName/OU=DevOps/CN=example.com"

Certificat SSL Let's Encrypt

Vous pouvez utiliser Certbot pour générer et renouveler automatiquement un certificat SSL Let's Encrypt.

Exemple pour Apache :

sudo snap install certbot
sudo certbot --apache -n --agree-tos -d example.com -m [email protected]

Autres

Si vous souhaitez utiliser un autre reverse proxy, veillez à transférer également les connexions websocket sur la route /api/ws !