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

個人的に開発しているWEBアプリで、
あるWEBサービスAPIを叩きにいくのだが、
最近ドメインが変わった後にどうも(こちら側に)不具合が発生していた模様。
システムエラーが起こった場合はslackに連携するようにしていたのだが、
リダイレクト先が変わったことによって本来の処理まで行っておらず、
結果的にシステムエラーさえ起きなかったという…。

リダイレクト先を修正してローカル環境で動かすと、
com.sun.jersey.api.client.ClientHandlerException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
REST通信に失敗し、上記エラーメッセージが出ていた。

javaでSSL接続をすると、PKI PATHの構築に失敗となる
なるほど、相手ホストを信頼済みのリストに登録すればよいのか。
InstallCert.javaがリンク切れになってたので探すとgithubにあった。
github.com
qiita.com
keytoolを使ってcacertsに証明書を追加すればよいわけですな。
InstallCertのREADMEが一番わかりやすかった。

とりあえずローカル環境で動くことを確認して本番機に反映。