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 !