詹金斯代理407错误
我在使用代理访问互联网的企业网络中运行Jenkins CI 。
我尝试在插件 - >高级配置代理详细信息,但即使凭据是正确的(是的,我检查了很多次),即使在http://google.com上也无法验证“测试URL”,并返回
无法连接到http://google.com(代码407)。
奇怪的是,詹金斯仍然能够自己下载插件(whoa!),但完全无法连接到任何HTTP资源。 从控制台输出的消息是:
←[0mApr 16,2015 1:58:56 PM org.apache.commons.httpclient.HttpMethodDirector pro cessProxyAuthChallenge信息:使用NTLM进行身份验证@ proxyrye.asg.com:80 Apr 16,2015 2:09:09 PM org.apache .commons.httpclient.HttpMethodDirector执行WithRetry INFO:在处理请求时捕获I / O异常(java.net.ConnectException):连接超时:connect 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 org.apache .commons.httpclient.HttpMethodDirector au Thenticate SEVERE:凭证不能用于NTLM身份验证:org.apache.commons.h ttpclient.UsernamePasswordCredentials org.apache.commons.httpclient.auth.InvalidCredentialsException:凭证不能用于NTLM身份验证:org .apache.commons.httpclient.UsernamePasswo rd org.apache.commons.httpclient.auth.NTLMScheme.authenticate中的凭证(NTLMScheme .java:332)
Jenkins在我们公司的代理人背后有一段很长的时间。 有一天,他们改变了我们代理人所期望的认证方案的顺序。 这是我们Jenkins停止连接到互联网的那一天。
Jenkins显然无法通过需要NTML认证的代理进行连接。 这就是让我为Jenkins扩展代理配置屏幕的改进。 在扩展的工作中,我发现Jenkins没有使用所有与代理有关的系统属性,因此它不能与NTLM一起使用。
因此,只允许NTLM身份验证的代理的答案是:它不会通过Jenkins UI工作。
但是,如果您的代理允许使用其他身份验证方案,则可以按照我们的解决方法,它非常简单:将Java系统属性-Dhttp.auth.preference="basic"
到您的Jenkins启动脚本或您的一个容器中。
这将强制底层库和Java机制Jenkins利用基本身份验证连接到您的代理,而不是NTLM。
我在使用jdk 8上的jetty服务器运行jenkins时遇到了此错误。
要解决问题,请遵循以下步骤:
步骤1:
在浏览器中打开URL https://updates.jenkins.io/
第2步:
要导出中间证书:
Internet Explorer - >工具 - > Internet选项 - >内容 - >证书 - >转到受信任的根证书颁发机构选项卡并找出DST根CA X3证书。 然后导出证书:选择证书 - >导出 - > DER编码的二进制格式 - >保存证书作为jenkins.cer(对我来说它被保存到C: jenkins jenkins.cer
(从Firefox - >工具 - >选项 - >高级 - >加密 - >查看证书)
第3步:创建名称为cacertskeystore的密钥库
JAVA_HOME bin keytool -keystore C: jenkins cacertskeystore -genkey -alias cacerts
步骤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
我今天遇到了这个问题,最终最终成为Spira配置中Spira URI末尾的空格。 一定是一个坏的复制和粘贴。
链接地址: http://www.djcxy.com/p/84535.html