我目前正在开发一个项目,可以自动将文件检入到使用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证书的正确配置是什么?我正确地生成了自签名的吗?