Igo*_*orY 36 ssl signature maven
我试图找到是否有启用SSL的中央存储库,但可能没有.我注意到maven中央存储库中的每个jar和pom文件都有签名.所以至少我想查看所有maven下载文件(pom/jar)的签名.
来自http://repo1.maven.org/maven2/org/apache/ant/ant/1.8.2/的示例:
ant-1.8.2.jar
ant-1.8.2.jar.asc
ant-1.8.2.jar.asc.md5
ant-1.8.2.jar.asc.sha1
ant-1.8.2.jar.md5
ant-1.8.2.jar.sha1
ant-1.8.2.pom
ant-1.8.2.pom.asc
ant-1.8.2.pom.asc.md5
ant-1.8.2.pom.asc.sha1
ant-1.8.2.pom.md5
ant-1.8.2.pom.sha1
Run Code Online (Sandbox Code Playgroud)
我意识到我必须为每个存储库导入公钥,我很好.我猜maven central的公钥是https://svn.apache.org/repos/asf/maven/project/KEYS.
关于如何使用maven进行签名,网上有很多关于教程的教程.但是我没有找到任何关于如何强制maven(2或3)来验证下载的jar/pom文件的签名的信息.可能吗?
(Nexus Professional不是一个选项)
谢谢你的帮助.
现在,人们似乎意识到这是一个真正的安全问题(如博客文章中所述(博客似乎已经失效,这里是博客的存档版本)),有一个用于验证PGP签名的插件.您可以使用以下命令验证项目的所有依赖项的签名:
mvn com.github.s4u.plugins:pgpverify-maven-plugin:check
Run Code Online (Sandbox Code Playgroud)
当然,要100%确定插件本身不是恶意的,你必须从maven中心下载并验证插件的源代码,用maven构建它,并执行它.(这也应该通过递归方式完成构建所需的所有依赖项和插件.)
或者您使用Maven 3.2.3或更高版本(带有干净的存储库),它使用TLS下载所有文物.因此,中间人攻击是不可能的,你至少得到了人工制品,因为它们在maven中心.
也可以看看:
假设您只想下载带有有效校验和的工件,一种选择是运行 OSS 版本的 Nexus 并将其配置为具有中央代理。然后将您的settings.xml 配置为仅从您的存储库加载(settings.xml 中的镜像标记)。然后,您可以将 Nexus 配置为仅允许具有有效校验和的工件。
归档时间: |
|
查看次数: |
6305 次 |
最近记录: |