LoginSignup
1
0

More than 5 years have passed since last update.

Jenkins + Apache で HTTPS対応したのに400-BadRequestになった

Last updated at Posted at 2016-12-06

今更感の出尽くした感のある記事ですが、
意外にもググっても直接的な記事が出なかったので書いてみました。

なにコレ

トラブルシュートの事例です。
Jenkins + Apache を使ってSSL化したのに、とあるリンクを踏むと http にリクエストを投げていて400エラーが発生した事例です。

環境

・Jenkinsを 1090(HTTP)ポートで起動している
・Apacheを 1081(HTTPS)ポート HTTP1080(HTTP)ポートで起動している
※1080は1081にリダイレクトしているだけなので今回の話には出てきません。

状況

上記設定の時に、
Jenkinsの管理 > システムの設定 > Jenkins URL の項目を https のURLに直して保存ボタンを押した所、

Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

が出てしまった。
戻るボタンで戻って、再度システムの設定にアクセスするとちゃんとJenkins URLは保存されている。
にもかかわらず、保存ボタンを押したら上記エラーになった。(それ以外にも設定のリロードやジョブの設定の保存でも同じくエラーになった。)

調査

調べてみると、 保存 を押した時に呼び出しているURLが既に http だった。
つまり、
https://user_server:1081/ で作業していたのに、保存を押すと
http://user_server:1081/ にリクエストを投げてしまっていたので400エラーが出ていた。

原因

原因はこれ

同じ方法で

ProxyRequests Off
Header edit Location ^http https
ProxyPass / http://localhost:1090/

と記載する事で、事なきを得るに至った。

1
0
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
0