SVN コマンドラインから SSL 証明書を受け入れるにはどうすればよいでしょうか?

SVN コマンドラインから SSL 証明書を受け入れるにはどうすればよいでしょうか?

プロンプトを回避する方法で SVN コマンドラインを使用して SSL 証明書を永続的に自動受け入れるコマンドライン オプションはありますか?

答え1

SVN のバージョンによって多少異なります。最近のバージョン (1.6 以降) には、通常のバージョン--non-interactive(プロンプトを回避するために使用) と、--trust-server-cert必要な機能を実行するバージョンがあります。

答え2

を使用すると、--trust-server-certSSL証明書は永久的に受け入れられません。コマンドラインを使用してSSL証明書を永久的に受け入れることができます。入力リダイレクトおよび使用しません--non-interactive

Unix/Linux の例を次に示します。

svn list [TARGET] << EOF
p
EOF

注記:上記の「p」は「永久に」を意味します。

答え3

私のソリューションでは 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@.*:\/#"

答え4

証明書をダウンロードして適切なディレクトリに配置することができます。または、CA証明書をダウンロードして構成オプションを設定することもできます。SSL 権限ファイルその CA を信頼します。

を参照してくださいSSL証明書管理本のセクション。

関連情報