2 votes

Exiger des certificats client SSL de tous les clients distants (et non locaux) ?

J'ai un serveur nginx auquel j'aimerais ajouter l'authentification par certificat SSL du client. J'utilise un système (GitLab) qui doit faire appel à lui-même en interne pour les crochets commit et autres. Existe-t-il un moyen de configurer SSL avec SSL client pour tous les utilisateurs de GitLab ? à distance des clients (non locaux) ?

J'aimerais faire en sorte que GitLab puisse s'appeler lui-même sans certificat client, mais que tous les clients distants doivent s'authentifier avec un certificat SSL client.

1voto

Vortura Points 360

Sans rien connaître de GitLab, il semble qu'il serait assez facile de faire cela avec des hôtes virtuels. Créez deux hôtes virtuels, l'un avec une authentification client TLS pour l'accès client, et un second pour l'accès local depuis GitLab. Par exemple :

server {
  # Listen on your externally accessible address
  listen        10.0.0.1:443;
  ssl on;
  server_name example.com;

  ssl_certificate      /etc/nginx/certs/server.crt;
  ssl_certificate_key  /etc/nginx/certs/server.key;
  ssl_client_certificate /etc/nginx/certs/ca.crt;
  ssl_verify_client on;

  include shared.conf;
}

server {
  # Listen on localhost or some internal-only address
  listen        127.0.0.1:443;
  ssl on;
  server_name localhost;

  ssl_certificate      /etc/nginx/certs/server.crt;
  ssl_certificate_key  /etc/nginx/certs/server.key;
  ssl_client_certificate /etc/nginx/certs/ca.crt;
  ssl_verify_client optional;

  include shared.conf;
}

Mettez toute configuration qui devrait être partagée par les deux hôtes virtuels à l'intérieur de shared.conf pour éviter les doublons.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X