2017-06-09 2 views
6
gitlab-ci-multi-runner register 

m'a donnérunner-CI gitlab ce: ignorer certificat auto-signé

couldn't execute POST against https://xxxx/ci/api/v1/runners/register.json: 
Post https://xxxx/ci/api/v1/runners/register.json: 
x509: cannot validate certificate for xxxx because it doesn't contain any IP SANs 

est-il un moyen de désactiver la validation de la certification? J'utilise Gitlab 8.13.1 et gitlab-ci-multi-runner 1.11.2.

Répondre

5

Ok j'ai suivi pas à pas ce poste http://moonlightbox.logdown.com/posts/2016/09/12/gitlab-ci-runner-register-x509-error et cela a fonctionné comme un charme. Pour éviter le lien mort copier les étapes ci-dessous:

Première configuration modifier ssl sur le serveur gitlab ce (et non le coureur)

vim /etc/pki/tls/openssl.cnf 

[ v3_ca ] 
subjectAltName=IP:192.168.1.1 <---- Add this line. 192.168.1.1 is your GitLab server IP. 

Régénérer certificat auto-signé

cd /etc/gitlab/ssl 
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/gitlab/ssl/192.168.1.1.key -out /etc/gitlab/ssl/192.168.1.1.crt 
sudo openssl dhparam -out /etc/gitlab/ssl/dhparam.pem 2048 
sudo gitlab-ctl restart 

Copier la nouvelle CA au coureur CI GitLab

scp /etc/gitlab/ssl/192.168.1.1.crt [email protected]:/etc/gitlab-runner/certs 

Merci @Moon L ight @Wassim Dhif

4

Actuellement, il n'y a aucune possibilité d'exécuter le multi-coureurs avec une option ssl non sécurisée.

Il existe actuellement un problème ouvert à GitLab à ce sujet.

Pourtant, vous devriez être en mesure d'obtenir votre certificat, en faire un fichier PEM et de donner à la commande de renforcement en utilisant --tls-ca-file

Pour concevoir le fichier PEM utilisation OpenSSL.
openssl x509 -in mycert.crt -out mycert.pem -outform PEM

+0

Merci @wassim Dhif J'ai également trouvé ce https://github.com/ayufan/gitlab-ci-multi-runner/blob/master/docs/configuration/tls-self-signed.md mais toujours coincé .. –

3

Sur la base de la réponse de Wassim et gitlab documentation about tls-self-signed and custom CA-signed certificates, voici pour gagner du temps si vous n'êtes pas l'administrateur du serveur gitlab ce mais juste du serveur avec les coureurs:

SERVER=example.com 
PORT=443 
CERTIFICATE=/etc/gitlab-runner/certs/${SERVER}.crt 

# Create the certificates hierarchy expected by gitlab 
sudo mkdir -p $(dirname "$CERTIFICATE") 

# Get the certificate in PEM format and store it 
openssl s_client -connect ${SERVER}:${PORT} -showcerts </dev/null 2>/dev/null | sed -e '/-----BEGIN/,/-----END/!d' | sudo tee "$CERTIFICATE" >/dev/null 

# Register your runner 
gitlab-runner register --tls-ca-file="$CERTIFICATE" [your other options] 

Mise à jour 1: le certificat doit être un chemin absolu au bon emplacement.

Update 2: il sera toujours échouer avec signé CA personnalisé en raison de gitlab bug #2675

1

Dans mon cas, je l'ai eu de travail en ajoutant le chemin vers le fichier .pem comme suit:

sudo gitlab-runner register --tls-ca-file /my/path/gitlab/gitlab.myserver.com.pem 
0

Dans ma configuration ce qui suit a également fonctionné. Il est juste important que IP/Nom utilisé pour la création du certificat corresponde à IP/Nom utilisé pour l'enregistrement du coureur.

gitlab-runner register --tls-ca-file /my/path/gitlab/gitlab.myserver.com.pem

De plus, il pourrait être nécessaire d'ajouter une ligne pour le nom d'hôte recherche pour les coureurs config.toml fichier également (section [coureurs.docker]): extra_hosts = ["git.domain.com:192.168.99.100"] voir aussi https://gitlab.com/gitlab-org/gitlab-runner/issues/2209

En outre, il pourrait y avoir un réseau ennuis si pour l'hôte en mode réseau gitlab ce/gitlab ce coureur est utilisé, il doit être ajouté à la config.toml ainsi , comme il commence des conteneurs supplémentaires, ce qui pourrait autrement un problème pour se connecter à l'hôte gitlab ce ((section [runners.docker]): network_mode="host"

Enfin, il pourrait y avoir un problème avec l'auto-signé SSL- Cert (https://gitlab.com/gitlab-org/gitlab-runner/issues/2659) Une solution de contournement est d'ajouter environment = ["GIT_SSL_NO_VERIFY=true"] aux [[les coureurs]] section.