首页 文章

Jenkins代理407错误

提问于
浏览
7

我在企业网络中运行 Jenkins CI ,该网络使用代理进行互联网访问 .

我试图在插件 - >高级中配置代理详细信息,但即使凭据是正确的(是的,我多次检查它),它甚至无法验证"Test URL" http://google.com并返回

无法连接到http://google.com(代码407) .

奇怪的是,Jenkins仍然可以自己下载插件(哇!),但完全无法连接到任何HTTP资源 . 从控制台输出的消息是:

←[0mApr 16,2015 1:58:56 PM org.apache.commons.httpclient.HttpMethodDirector pro cessProxyAuthChallenge INFO:使用NTLM验证失败@ proxyrye.asg.com:80 Apr 16,2015 2:09:09 PM org . apache.commons.httpclient.HttpMethodDirector执行WithRetry INFO:处理请求时捕获的I / O异常(java.net.ConnectException):连接超时:连接时间:2015年4月16日下午2:09:09 org.apache.commons.httpclient . HttpMethodDirector执行WithRetry INFO:重试请求2015年4月16日下午2:09:10 org.apache.commons.httpclient.auth.AuthChallengeProcesso r selectAuthScheme INFO:ntlm认证方案选择←[31mApr 16,2015 2:09:10 PM组织 . apache.commons.httpclient.HttpMethodDirector au thenticate SEVERE:Credentials不能用于NTLM身份验证:org.apache.commons.h ttpclient.UsernamePasswordCredentials org.apache.commons.httpclient.auth.InvalidCredentialsException:Credentials不能用于NTLM身份验证: org.apache.commons.httpclient.UsernamePasswo org.apache.commons.httpclient.auth.NTLMScheme.authenticate上的rdCredentials(NTLMScheme .java:332)

8 回答

  • -1

    我们的詹金斯在我们公司的代理背后有这个问题很长一段时间 . 有一天,他们改变了我们代理所需的认证方案的顺序 . 这是我们詹金斯停止连接互联网的那一天 .

    显然Jenkins is not able to connect via a proxy that requires NTML authentication . 这就是导致我的原因to issue an improvement for Jenkins to extend the proxy configuration screen . 在扩展工作期间,我发现Jenkins没有使用所有代理相关的系统属性,因此它无法与NTLM一起使用 .

    因此,只允许NTLM身份验证的代理的答案是:它不能通过Jenkins UI工作 .

    But 如果您的代理允许其他身份验证方案,您可以按照我们的解决方法,它很简单:将java系统属性 -Dhttp.auth.preference="basic" 添加到您的Jenkins启动脚本或您的容器中 .

    这将强制Jenkins使用基础身份验证而非NTLM连接到您的代理的底层库和Java机制 .

  • 0

    我在jdk 8上运行带有jetty服务器的jenkins时遇到了这个错误 .

    要解决问题,请按以下步骤操作

    Step 1:

    在浏览器中打开URL https://updates.jenkins.io/

    Step 2:

    要导出中间证书:

    Internet Explorer - >工具 - > Internet选项 - >内容 - >证书 - >转到“受信任的根证书颁发机构”选项卡,找出DST根CA X3证书 . 然后导出证书:选择证书 - >导出 - > DER编码二进制格式 - >保存将证书保存为jenkins.cer(对我而言,它保存到C:\ jenkins \ jenkins.cer

    (来自Firefox - >工具 - >选项 - >高级 - >加密 - >查看证书)

    Step 3: 使用名称cacertskeystore创建密钥库

    JAVA_HOME \ bin \ keytool -keystore C:\ jenkins \ cacertskeystore -genkey -alias cacerts

    Step 4:

    使用以下命令将jenkins.cer添加到cacertskeystore

    JAVA_HOME \ bin \ keytool -import -trustcacerts -Keystore C:\ jenkins \ cacertskeystore -alias jenkins -file C:\ jenkins \ jenkins.cer

    步骤5:使用以下命令启动jetty服务器JAVA_HOME \ bin \ java -DJENKINS_HOME = C:/ jenkins / home -Djavax.net.ssl.trustStore = C:/ jenkins / cacertskeystore -Djavax.net.ssl.trustStorePassword = password-provided -while-creating-keystore -jar jenkins.war --httpPort = 8080 - httpListenAddress = localhost

  • 5

    我今天遇到了这个问题,它最终成为Spira配置中Spira URI末尾的空格 . 一定是坏的复制粘贴 .

  • -1

    以下解决方案适用于Windows 7机器中的407问题 .

    • 1.从Windows服务中停止Jenkins

    • 2.转到Services.msc> Jenkins>右键单击>属性>登录>此帐户并输入您的用户名和密码

    • 3.单击“应用”和“确定”

    • 3.启动詹金斯

  • 0

    Simple Hack: 尝试使用域的IP而不是地址 . -Dhttp.auth.preference="basic" 实际上对我不起作用:(

    PS . 更改浏览器和代理和Jenkins代理到IP

  • 0

    我在受到bug的影响时发现了这个问题:https://issues.jenkins-ci.org/browse/JENKINS-48775

    临时解决方法是打开Jenkins脚本控制台并键入 ProxyConfiguration.open(new java.net.URL("http://jenkins.io")).content

    由于它是一个http网址,而不是一个https网址,它会刷新一些缓存并让插件管理器使用代理设置,至少在一段时间内 . 有关详细信息,请参阅错误报告 .

  • 0

    如果您解析异常,它会说明

    凭据不能用于NTLM身份验证

    因此,根据https://www.safaribooksonline.com/library/view/jenkins-the-definitive/9781449311155/ch04s09.html,您可能还需要提供域名 .

    如果您的代理使用的是Microsoft的NTLM身份验证方案,那么您需要提供域名和用户名 . 您可以将两者都放在用户名字段中:只需输入域名,然后输入反斜杠(\),然后输入用户名,例如“MyDomain \ Joe Bloggs” .

    也许这就是问题?

  • 1

    我在测试中无法连接到http://google.com(代码407)错误 . 但是jenkins可以检查新版本并安装插件和更新 .

    无论测试如何,都要输入凭据 . 然后保存并转到可用的插件/检查jenkins版本以检查它是否有效 .

相关问题