LoginSignup
2
3

More than 3 years have passed since last update.

プロキシ祭りだ☆ワッショイ!

Last updated at Posted at 2019-12-04

プロローグ

デバッグをしていると PKIX path building failed ~
あり~?
昨日まで普通に動いていたのに。
しかし、これは前にも起きたことがあるのでサクっと解決できる。
いま思えば、これが不幸の始まりでした。(所要時間12時間)

1.証明書エラーの解決(プロキシなし)

aws.png

AWS環境では、EC2 with 似非SSLからインターネットに接続しようとして、 PKIX path building failed ~ が発生していたので、javaに似非SSL証明書を登録して解決。

PKIX path building failed:javaにSSL証明書を追加する

2.証明書エラーの解決(プロキシあり)⇒ 失敗!

local2.png

ローカルPCから繋がらなくなり、PKIX path building failed ~ が出ていたので、何の疑いもなく似非SSL証明書を登録した。
これが不幸の始まり。

2.1 証明書を登録、登録&登録

eclipseを使ってウン10年、jdk、jre 以外にeclipseのjreがあるとは知りませんでした。

Eclipseでgradleプロジェクト作成時、証明書エラーで失敗した場合

jdkのcacerts に証明書を登録してもダメ、jreのcacerts に証明書を登録してもダメ。
これを見つけたときは、tomcatでデバッグしていることもあり、手ごたえありでしたが、ダメ。

2.2 証明書をexp&imp

コンパネの証明書の管理から、臭そうな証明書をexp&imp、exp&imp、、、泥沼
※このときjavaのcacertsが復旧不能な状態になったと思います。

3.不変的なエラーの解決方法

いくつかありますが、ここでは確実に解決する方法を取り上げます。

3.1 事象が再現する最小構成を構築する

今回の件なら、以下の2点を確認できれば泥沼にハマることはなかったでしょう。

  • インターネットに繋がらないのは特定のサイトか?

  • java以外で繋がるか?

・インターネットに繋がらないのは特定のサイトか?
最初のアクセスがgoogle apiのため、またセキュリティが強化されたと思い込んだのが間違いでした。yahooでも繋がりませんでした。
spring bootでしたが、URLConnectionで繋ぐところだけ抜き出して素のjavaで確認しました。

・java以外で繋がるか?
最初のアクセスがGETなので、ブラウザでアクセスしたら繋がりました。いちおうnodeでも繋がることを確認しました。

だいたいプロキシを通してるんだから、「似非SSL証明書」をjavaに登録する事自体が奇妙だったんだ

そもそも

4.証明書エラーの解決(プロキシあり)⇒ 解決

隣人のjdkのcacertsをもらって上書きしたら直りました(^^;

cacertsに登録されているリストも見ましたが、長いし、どれを直したらいいか分からないし、、、
3.1 事象が再現する最小構成を構築する で、jdkのcacertsがおかしいことは確信したので、迷わず上書きしました。

エピローグ

原因が分からないまま解決を優先してしまいました。
javaのcaについては分からないままです。
心残りはありますが、ここは

javaめんどくせー

proxyうざー

で締めたいと思います。
(ちなみに、本来の改修は30分で終わりました)

「似非SSL」口に出すと言いづらいですね。エセエスエスエル
もうセッセッセでいいんじゃないでしょうか、ワッショイ!

2
3
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
2
3