Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-16511

Jenkins behind a proxy sends JNLP agents incorrect URL

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Blocker
    • Resolution: Duplicate
    • Component/s: remoting
    • Labels:
    • Environment:
      Jenkins on port 8080, Apache proxy for SSL connections.
    • Similar Issues:

      Description

      Once I upgraded to Jenkins 1.5, my slave agent ("mac-mini") could no longer connect. Here's an example session (I changed the hostname and credentials to protect the guilty):

      $ java -jar ./slave.jar -jnlpCredentials myuser:mypassword -jnlpUrl https://ci.mydomain.com/jenkins/computer/mac-mini/slave-agent.jnlp -noCertificateCheck
      Skipping HTTPS certificate checks altoghether. Note that this is not secure at all.
      Jan 28, 2013 1:45:43 PM hudson.remoting.jnlp.Main$CuiListener <init>
      INFO: Hudson agent is running in headless mode.
      Jan 28, 2013 1:45:43 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Locating server among [http://ci.mydomain.com/jenkins/, http://127.0.0.1:8080/jenkins/]
      Jan 28, 2013 1:45:43 PM hudson.remoting.jnlp.Main$CuiListener error
      SEVERE: http://ci.mydomain.com/jenkins/tcpSlaveAgentListener/ is invalid: 301 Moved Permanently
      java.lang.Exception: http://ci.mydomain.com/jenkins/tcpSlaveAgentListener/ is invalid: 301 Moved Permanently
      	at hudson.remoting.Engine.run(Engine.java:168)
      

      I then used Charles Proxy to capture the HTTP traffic to see what was going on. I've attached a file of that capture, but the relevant problem is here:

      <argument>-url</argument><argument>http://ci.mydomain.com/jenkins/</argument>
      

      The problem is that the slave is being told to connect via HTTP, but (thanks to our proxy) Jenkins is only available via HTTPS. I checked my configuration and it is correct. I believe the issue is caused by this change on January 15th. The protocol of the request from Apache to Jenkins is HTTP, however the client must use HTTPS as I configured our root URL.

        Attachments

          Issue Links

            Activity

            Hide
            jglick Jesse Glick added a comment -

            Folding into JENKINS-16368.

            Show
            jglick Jesse Glick added a comment - Folding into JENKINS-16368 .

              People

              • Assignee:
                Unassigned
                Reporter:
                jcook793 John Cook
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: