2015-04-16 17 views
7

Sono in esecuzione Jenkins CI all'interno di una rete aziendale che utilizza un proxy per l'accesso a Internet.Errore 405 Jenkins proxy

Ho provato a configurare i dettagli del proxy in Plugins-> Avanzate, ma anche se le credenziali sono corrette (sì, ho controllato un sacco di volte), non può convalidare "URL di prova" anche su http://google.com e restituisce

Impossibile connettersi al http://google.com (codice 407).

Stranamente, Jenkins è ancora in grado di scaricare i plugin stesso (Whoa!), Ma totalmente incapace di connettersi a qualsiasi risorsa HTTP. Il messaggio che emette dalla console è:

← [0mApr 16, 2015 01:58:56 org.apache.commons.httpclient.HttpMethodDirector pro cessProxyAuthChallenge INFORMAZIONI: La mancata autenticazione NTLM con @ proxyrye.asg .com: 80 Apr 16, 2015 2:09:09 PM org.apache.commons.httpclient.HttpMethodDirector execute WithRetry INFO: eccezione I/O (java.net.ConnectException) rilevata durante l'elaborazione della richiesta : Timeout connessione scaduto: connect Apr 16, 2015 2:09:09 PM org.apache.commons.httpclient.HttpMethodDirector execute WithRetry INFO: Nuova richiesta 16 apr 2015 2:09:10 PM org.apache.com mons.httpclient.auth.AuthChallengeProcesso r selectAuthScheme INFORMAZIONI: schema di autenticazione NTLM selezionato ← [31mApr 16, 2015 02:09:10 org.apache.commons.httpclient.HttpMethodDirector au tenticare GRAVI: Le credenziali non possono essere utilizzati per NTLM autenticazione: org.apache.commons.h ttpclient.UsernamePasswordCredentials org.apache.commons.httpclient.auth.InvalidCredentialsException: credenziali Cann ot essere utilizzati per l'autenticazione NTLM: org.apache.commons.httpclient.UsernamePasswo rdCredentials a org .apache.commons.httpclient.auth.NTLMScheme.authenticate (NTLMScheme .java: 332)

risposta

-1

Se si analizza l'eccezione, essa afferma

credenziali non possono essere utilizzati per l'autenticazione NTLM

Quindi secondo https://www.safaribooksonline.com/library/view/jenkins-the-definitive/9781449311155/ch04s09.html potrebbe essere necessario fornire un nome di dominio pure.

Se il proxy utilizza lo schema di autenticazione NTLM di Microsoft, sarà necessario fornire un nome di dominio e un nome utente. Puoi inserire entrambi nel campo Nome utente: inserisci il nome del dominio, seguito da una barra rovesciata (\), seguito dal nome utente, ad esempio "MyDomain \ Joe Bloggs".

Forse è questo il problema?

+0

Purtroppo non è così facile. Ho provato sia per fornire e non forniscono un nome di dominio prima username - ancora inutilmente – Ilves

+0

Inoltre non ero in grado di autenticarmi con il mio dominio \ utente. –

0

Mi sono imbattuto in questo problema oggi, e alla fine è finito per essere uno spazio alla fine dell'URI Spira nella configurazione Spira. Deve essere stato un brutto copia e incolla.

5

Abbiamo avuto questo problema un tempo piuttosto lungo con il nostro Jenkins dietro il proxy della nostra azienda.L'altro giorno hanno cambiato l'ordine degli schemi di autenticazione che il nostro proxy desidera. Questo è stato il giorno in cui la nostra Jenkins ha smesso di connettersi a Internet.

Ovviamente Jenkins is not able to connect via a proxy that requires NTML authentication. Questo è ciò che mi ha portato a to issue an improvement for Jenkins to extend the proxy configuration screen. Durante il lavoro sull'estensione ho scoperto che Jenkins non utilizza tutte le proprietà del sistema relative al proxy, quindi non può funzionare con NTLM.

Come tale la risposta per un proxy che consente l'autenticazione solo NTLM: non funzionerà tramite l'interfaccia utente di Jenkins.

Ma se il proxy consente ad altri schemi di autenticazione, è possibile seguire la nostra soluzione alternativa, è piuttosto semplice: aggiungere la proprietà di sistema java -Dhttp.auth.preference="basic" al tuo script di avvio Jenkins o a quella del vostro contenitore.

In questo modo le librerie e i meccanismi Java sottostanti verranno utilizzati da Jenkins per connettersi al proxy utilizzando l'autenticazione di base, non NTLM.

+0

Grazie mille! –

-1

Ho avuto l'errore di connettersi a http://google.com (codice 407) errore nel test. Ma jenkins può controllare la nuova versione e installare i plugin & aggiornamenti.

Inserire le credenziali indipendentemente dal test. Quindi salva e vai ai plugin disponibili/controlla la versione di jenkins per verificare se funziona.

0

La soluzione seguente ha funzionato per me per il problema 407 in Windows 7.

  • 1. Fermare Jenkins da servizi di Windows
  • 2. Vai a Services.msc> Jenkins> tasto destro> Proprietà> Logon> Questo account e digitare il nome utente e la password
  • 3. Fare clic su Applica e OK
  • 3. Avviare Jenkins
1

stavo ottenendo questo errore durante l'esecuzione di Jenkins con il server molo sul JDK 8.

Per risolvere problema seguire la procedura:

Fase 1:

Apri URL https://updates.jenkins.io/ browser

Fase 2:

Per esportare il certificato intermedio:

Internet Explorer -> Strumenti -> Opzioni Internet -> Contenuto -> Certificati -> Vai su Trusted Scheda Autorità di certificazione radice e trova il certificato CA X3 radice DST. Quindi esporta il certificato: Seleziona certificato -> Esporta -> Formato binario codificato DER -> Salva salva il certificato come jenkins.cer (per me è stato salvato in C: \ jenkins \ jenkins.cer

(da Firefox -> Strumenti -> Opzioni -> Avanzate -> Crittografia -> Mostra certificati)

Fase 3: creare chiavi con nome cacertskeystore

JAVA_HOME \ bin \ keytool - chiavi C: \ Jenkins \ cacertskeystore -genkey -alias cacerts

Fase 4:

Aggiungere Jenkin s.cer a cacertskeystore usando sotto comando

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

Fase 5: Inizio server jetty con comando sottostante JAVA_HOME \ bin \ java -DJENKINS_HOME = C:/jenkins/home -Djavax.net.ssl.trustStore = C:/jenkins/cacertskeystore -Djavax.net.ssl.trustStorePassword = password-fornita-while- la creazione di chiavi-jar jenkins.war --httpPort = 8080 - httpListenAddress = localhost

0

semplice Hack: Provare a utilizzare l'IP del dominio piuttosto tha n l'indirizzo. -Dhttp.auth.preference="basic" in realtà non ha funzionato per me :(

PS. Modificare sia il browser e proxy e il proxy Jenkins all'IP