Sonatype Nexus 上传失败,nexus.xyz.corp 的证书与证书主题的通用名称不匹配:wiki.xyz.corp
Posted
技术标签:
【中文标题】Sonatype Nexus 上传失败,nexus.xyz.corp 的证书与证书主题的通用名称不匹配:wiki.xyz.corp【英文标题】:Sonatype Nexus upload fails with Certificate for nexus.xyz.corp doesn't match common name of the certificate subject: wiki.xyz.corp 【发布时间】:2016-05-23 14:45:36 【问题描述】:尝试使用 Gradle 将文件上传到 Nexus 时出现以下错误:
证书与证书主题的通用名称不匹配:wiki.xyz.corp
详情:
C:\data\Workspaces\httpstest>gradlew uploadArchives
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar SKIPPED
:uploadArchives
Could not transfer artifact com.xyz:httpstest:jar:1.0.0 from/to remo
te (https://nexus.xyz.corp/nexus/content/repositories/1st-rel/): Cer
tificate for <nexus.xyz.corp> doesn't match common name of the certi
ficate subject: wiki.xyz.corp
Could not transfer artifact com.xyz:httpstest:pom:1.0.0 from/to remo
te (https://nexus.xyz.corp/nexus/content/repositories/1st-rel/): Cer
tificate for <nexus.xyz.corp> doesn't match common name of the certi
ficate subject: wiki.xyz.corp
:uploadArchives FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':uploadArchives'.
> Could not publish configuration 'archives'
> Failed to deploy artifacts: Could not transfer artifact com.xyz
:httpstest:jar:1.0.0 from/to remote (https://nexus.xyz.corp/nexus/co
ntent/repositories/1st-rel/): Certificate for <nexus.xyz.corp> doesn
't match common name of the certificate subject: wiki.xyz.corp
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.
BUILD FAILED
Total time: 5.511 secs
通过 HTTPS 下载可以正常工作,但上传不能。 nexus.xyz.corp 的证书具有正确的通用名称,而不是错误消息所暗示的 wiki.xyz.corp。 但是,wiki.xyz.corp 是在同一台服务器上运行的不同站点。
这里有什么问题?
【问题讨论】:
【参考方案1】:当使用SNI 共享不同的域(wiki.xyz.corp 和 nexus.xyz.corp)时会发生这种情况。 它至少出现在 Gradle 2.5 - Gradle 2.13 版本中。原因是 Gradle 在不支持 SNI 的版本中使用了 Maven Wagon 库。在这种情况下,网络服务器会返回一个默认证书。看来,wiki.xyz.corp 被定义为默认证书。
这在Gradle Discussion 和Gradle Issues 中进行了讨论。
可能的解决方法:
将 nexus.xyz.corp 定义为默认证书,但要注意其他站点上的问题 用 Maven Publish 替换 Maven Wagon,但这目前处于测试阶段。见Maven Publish. 尝试在没有 SNI 的情况下配置您的系统 以禁用主机检查的方式启动 Gradle(这是一个安全漏洞!):gradlew -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true uploadArchives
【讨论】:
以上是关于Sonatype Nexus 上传失败,nexus.xyz.corp 的证书与证书主题的通用名称不匹配:wiki.xyz.corp的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 )
Android Gradle 插件将自定义 Gradle 插件上传到自建 Maven 仓库 ⑥ ( 配置 Sonatype Nexus 搭建的 Maven 私服 | 配置端口号 | 配置JVM )