Назад | Перейти на главную страницу

Как принять сертификат SSL через командную строку SVN?

Есть ли опция командной строки для автоматического постоянного принятия сертификата SSL с использованием командной строки SVN таким образом, чтобы избежать подсказки?

Это несколько зависит от вашей версии SVN. Последние (1.6+) имеют обычные --non-interactive (который вы хотите использовать, чтобы избежать подсказок), а также --trust-server-cert это может делать то, что вы хотите.

С помощью --trust-server-cert не будет постоянно принимать сертификат SSL. Вы можете навсегда принять сертификат SSL через командную строку, используя Перенаправление ввода и не используя --non-interactive.

Вот пример для Unix / Linux:

svn list [TARGET] << EOF
p
EOF

НОТА: "P" выше означает (p) постоянно.

В моем решении используется expect. Это небезопасно, но будет работать, когда другие решения не будут.

#!/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@.*:\/#"

Вы должны иметь возможность скачать сертификат и затем поместить его в соответствующий каталог. Или вы можете загрузить сертификат CA и затем установить параметр конфигурации ssl-авторитетные файлы доверять этому CA.

Увидеть Управление сертификатами SSL раздел в книге.