Authentication 使用自签名SSL证书和SVNKit与TeamForge/Collab.net进行身份验证

Authentication 使用自签名SSL证书和SVNKit与TeamForge/Collab.net进行身份验证,authentication,openssl,svnkit,collabnet,teamforge,Authentication,Openssl,Svnkit,Collabnet,Teamforge,我目前正在进行一个项目,以将文件自动签入到由TeamForge/Collab.net托管的Subversion存储库。我正在使用SVNKit来处理这个程序和存储库之间的交互。以下是我用于身份验证的相关Java片段: SVNURL url = SVNURL.parseURIEncoded("https://blah.collab.net/svn/repos"); ISVNAuthenticationManager mAuthManager = new BasicAuthenticationMana

我目前正在进行一个项目,以将文件自动签入到由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证书的正确配置是什么?我是否生成了正确的自签名文件?

CN=svn.example.com
可能是错误的。主机名总是在SAN中。如果它存在于CN中,那么它也必须存在于SAN中(在这种情况下,您必须列出它两次)。有关更多规则和原因,请参阅,您还需要将自签名证书放置在相应的信任存储中。
CN=svn.example.com
可能是错误的。主机名总是在SAN中。如果它存在于CN中,那么它也必须存在于SAN中(在这种情况下,您必须列出它两次)。有关更多规则和原因,请参阅,您还需要将自签名证书放入相应的信任存储中。