1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Jenkins のアップデートサイトに認証付きプロキシ経由でアクセスしようとして 407 エラーとなるのに対処

Posted at

対象

OS は CentOS 7.5.1804 を使用。

~# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

Java は yum でインストールした OpenJDK 11 を使用。

~# java -version
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.4+11-LTS, mixed mode, sharing)

Jenkins は yum でインストールした 2.190.1 を使用。

~# yum info jenkins
インストール済みパッケージ
名前                : jenkins
アーキテクチャー    : noarch
バージョン          : 2.190.1
リリース            : 1.1
...省略...

問題

Jenkins の設定ページで「プラグインマネージャー」→「高度な設定」→「HTTP Proxyの設定」に認証付きプロキシを設定して保存する。

その後に「更新」をクリックすると以下のエラーメッセージが表示されてしまう。

There were errors checking the update sites: IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"

/var/log/jenkins/jenkins.log には以下のように記録されている。

2019-10-15 06:09:00.790+0000 [id=19]    INFO    hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2019-10-15 06:09:00.930+0000 [id=19]    INFO    hudson.util.Retrier#start: The attempt #1 to do the action check updates server failed with an allowed exception:
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
        at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2168)
...省略...
2019-10-15 06:09:00.932+0000 [id=19]    INFO    hudson.util.Retrier#start: Calling the listener of the allowed exception 'Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"' at the attempt #1 to do the action check updates server
2019-10-15 06:09:00.932+0000 [id=19]    INFO    hudson.util.Retrier#start: Attempted the action check updates server for 1 time(s) with no success
2019-10-15 06:09:00.932+0000 [id=19]    SEVERE  hudson.PluginManager#doCheckUpdatesServer: Error checking update sites for 1 attempt(s). Last exception was: IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"

「アップデートサイト」の設定はデフォルトで "https://updates.jenkins.io/update-center.json" となっており "https" から "http" に変更するとエラーが出なくなる。

対処方法

ググって以下のページで対処方法を把握。

以下、引用。

Java 8 Update 111からjava.netパッケージのHTTPS接続の際のトンネリングにBasic認証を使用できない設定がデフォルトになったようです。
回避するにはjdk.http.auth.tunneling.disabledSchemesに空文字列を設定する必要があるそうです。

Jenkins の場合はどこに記述するのが良いか以下のように確認して、設定、再起動。

~# systemctl status jenkins
...省略...
  Process: 7034 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
...省略...

~# cat /etc/rc.d/init.d/jenkins
...省略...
JENKINS_CONFIG=/etc/sysconfig/jenkins
...省略...

~# cp /etc/sysconfig/jenkins{,.original}
~# vi /etc/sysconfig/jenkins
~# diff /etc/sysconfig/jenkins{.original,}
47c47,48
< JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
---
> #JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
> JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djdk.http.auth.tunneling.disabledSchemes="

~# systemctl restart jenkins

Jenkins 再起動後に改めて「更新」をクリックして、エラーが出ずアップデートサイトにアクセスできることを確認。

関連

「HTTP Proxyの設定」にある「高度な設定...」の「テストURL」に "https" と "http" の URL のどちらを入力しても「Proxyの接続確認」をクリックすると以下のようにエラーメッセージが表示されてしまう。

https://www.google.com/ に接続できませんでした。(コード 407).

/var/log/jenkins/jenkins.log には以下のように記録されている。

2019-10-15 09:05:05.557+0000 [id=15]    INFO    o.a.c.h.a.AuthChallengeProcessor#selectAuthScheme: basic authentication scheme selected
2019-10-15 09:05:05.557+0000 [id=15]    SEVERE  o.a.c.h.HttpMethodDirector#processAuthenticationResponse: Invalid challenge: BASIC
org.apache.commons.httpclient.auth.MalformedChallengeException: Invalid challenge: BASIC
        at org.apache.commons.httpclient.auth.AuthChallengeParser.extractParams(AuthChallengeParser.java:107)
...省略...

こちらは例外クラスが違う。対処方法は未調査。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?