Comment acceptez-vous un certificat SSL via la ligne de commande SVN?


20

Existe-t-il une option de ligne de commande pour accepter automatiquement un certificat SSL en utilisant la ligne de commande SVN de manière à éviter l'invite?


Serait-ce mieux pour Stack Overflow?
James McMahon

Réponses:


20

Cela dépend quelque peu de votre version de SVN. Les plus récents (1.6+) ont l'habituel --non-interactive(que vous souhaitez utiliser pour éviter les invites) et aussi --trust-server-certcelui qui peut faire ce que vous voulez.


Cette solution semble fonctionner. Malheureusement, le certificat de ligne de commande n'a pas résolu mon problème initial. Eh bien, au moins je sais ce qui ne fonctionne pas maintenant.
James McMahon

Si cela ne fonctionne toujours pas, c'est peut-être parce que vous ne pouvez pas accéder / créer le répertoire .subversion dans votre répertoire personnel. Solution trouvée ici: chipsandtv.com/articles/svn-invalid-certificates
icc97

Le lien chipsandtv.com est mort. Y a-t-il une autre source?
Joe McMahon


J'ai fini par devoir utiliser les deux options, maintenant ça marche, merci!
rogerdpack

10

L'utilisation --trust-server-certn'acceptera pas définitivement le certificat SSL. Vous pouvez accepter définitivement le certificat SSL via la ligne de commande en utilisant la redirection d'entrée et non en utilisant --non-interactive.

Voici un exemple pour Unix / Linux:

svn list [TARGET] << EOF
p
EOF

REMARQUE: le "p" ci-dessus est pour (p) de manière permanente.


Eh bien, ma version ( 1.6.6 (r40053)) n'offrira malheureusement tout simplement pas l' poption (permanente). Et puisque c'est sur une ancienne boîte que je ne peux plus mettre à jour ...
0xC0000022L

2

Ma solution utilise expect. Ce n'est pas sécurisé, mais cela fonctionnera lorsque les autres solutions ne le seront pas.

#!/usr/bin/expect -f

set svn_username [lindex $argv 0]
set svn_password [lindex $argv 1]
set svn_url [lindex $argv 2]

spawn svn --username=${svn_username} --password=${svn_password} list ${svn_url}
expect "(R)eject, accept (t)emporarily or accept (p)ermanently? "
send -- "p\r"
expect "Store password unencrypted (yes/no)? "
send "no\r"
expect -re "root@.*:\/#"

0

Vous devriez pouvoir télécharger le certificat, puis le placer dans le répertoire approprié. Ou vous pouvez télécharger le certificat de l'autorité de certification, puis définir l'option de configuration ssl-authority-files pour approuver cette autorité de certification.

Voir la section Gestion des certificats SSL dans le livre.


Je suis dans une situation très étrange ici, voir serverfault.com/questions/7648/… , donc je veux pouvoir le retirer en une seule commande.
James McMahon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.