現在、TeamForge/Collab.net でホストされている Subversion リポジトリへのファイルのチェックインを自動化するプロジェクトに取り組んでいます。このプログラムとリポジトリ間のやり取りを処理するために SVNKit を使用しています。認証に使用している関連するJavaの部分は次のとおりです。
SVNURL url = SVNURL.parseURIEncoded("https://blah.collab.net/svn/repos");
ISVNAuthenticationManager mAuthManager = new BasicAuthenticationManager(new SVNAuthentication[]{
SVNSSLAuthentication.newInstance(new File(certFilePath), certFilePassPhrase, true, url, false),
SVNPasswordAuthentication.newInstance(login, passCharArray, false, url, false);
});
次の OpenSSL コマンドを使用して自己署名証明書を生成しました。
//generating a key and self-signed certificate
openssl req -x509 -sha256 -days 365 -newkey rsa:2048 -keyout private.key -out cert.crt -subj "/CN=svn.example.com"
//extracting public key from cert.crt
openssl x509 -in cert.crt -pubkey -noout
TeamForge のプロファイルの下にある [認証キー] タブに公開キーを配置しました。SVNKit では、cerFilePath を "path/to/cert.crt" として指定し、certFilePassPhrase を自己署名証明書の作成時に使用したものと同じに指定しています。
これまでのところ、証明書認証は常に失敗し、ログイン/パスワードに戻ってきました。ユーザーは実行時にコンソールにその情報を手動で入力しています。したがって、プログラムは機能しますが、それらのユーザー資格情報を保存せずに自動化/スケジュールすることはできません。
TeamForge での SSL 証明書の適切な構成は何ですか? 自己署名を正しく生成していますか?