Аутентификация с TeamForge/Collab.net с использованием самозаверяющего SSL-сертификата и SVNKit
В настоящее время я работаю над проектом по автоматизации проверки файлов в хранилище Subversion, размещенном на TeamForge/Collab.net. Я использую 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 как "путь / к /cert.crt" и certFilePassPhrase, который будет использоваться при создании самозаверяющего сертификата.
До сих пор проверка подлинности сертификата всегда терпела неудачу и возвращалась к логину / паролю, где у меня есть пользователь, вручную вводящий эту информацию в консоль во время выполнения. Так что программе разрешено работать, но я не смогу ее автоматизировать / запланировать без сохранения этих учетных данных пользователя.
Как правильно настроить SSL-сертификат с TeamForge? Правильно ли я генерирую свою подпись?