我们正在针对配置有https(SSL)的Artifactory实例使用Maven。问题在于证书是由我们的内部CA签名的,这迫使我们将CA证书导入Java中的cacerts文件中。
CA证书已分发到我们的Windows平台,并且可以使用Java SE6中引入的Microsoft CryptoAPI支持来获得。
如果Maven基于Java(如Java access to intermediate CAs from Windows keystores?中所述),那么如果Maven能够以某种方式从Windows keystore 访问中间CA,那将是非常好的。
有人知道这是否可能吗?
最佳答案
要了解Maven如何实现此代码,您需要查看Wagon system,尤其是source code。我将开始的地方是JSSE属性ssl.SocketFactory.provider
。如果创建custom SSLSocketFactory
,则可以让它完成初始化时从Windows获取证书的工作。您还必须找到一种将代码捆绑到extension中的方法,以便Maven在运行时可以访问它。