きり丸の技術日記

技術検証したり、資格等をここに残していきます。

GradleでProxy認証してライブラリをダウンロードする(PKIXエラー回避)

2022/01/26 更新
会社でもう一度同じエラーが発生したので、メモを追記します。PKIXというエラーが発生しました。


会社でproxyサーバ経由し、javaのgradleでライブラリをダウンロードできなかったので、設定した手順を残します。
流石に会社のコマンドをそのまま使えないので、いくつか修正しています。ですので参考程度に確認してください。

環境

  • Java
  • Gradle
  • Mac
  • Windows

    • 未実施。だが、Git bashで実行すれば同じような手順でOKらしい。
  • コマンドラインの「.zshrc」にプロキシを設定させる。

vi ~/.zshrc

次の内容を追加する。

# 対象のプロキシサーバ
export ALL_PROXY="http://proxy:8080" 
export http_proxy="$ALL_PROXY"
export HTTP_PROXY="$ALL_PROXY"
export https_proxy="$ALL_PROXY"
export HTTPS_PROXY="$ALL_PROXY"
export no_proxy="" # 社内サーバ等のproxyを挟みたくない場合ここに設定
  1. gradleにプロキシを設定させる
vi ~/.gradle/gradle.properties

次の内容を追加する。

# ホスト名とポート名は変更してください
systemProp.http.proxyHost=http://proxy
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=http://proxy
systemProp.https.proxyPort=8080
  1. プロキシの証明書をkeytoolsコマンドでJavaに信頼させる

プロキシの証明書は事前に取得してください。
証明書がいらないなら、そもそもこの手順いらないと思います。

下記コマンドはこういう意味で実行しています。

  • 証明書名はproxy.crt
  • 証明書の配置はホームディレクトリ
  • homebrewを使ってopenJDK 11.0.2をダウンロードしたパス
keytool --importcert -alias proxy -file $HOME/proxy.crt -keystore /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/lib/security/cacerts

keytoolsコマンドのリファレンス

https://docs.oracle.com/cd/E77565_01/E54670/html/ol7-keytool-sec.htmldocs.oracle.com

gradleの状態がおかしくなった時は

gradleのキャッシュを削除をすれば良いです。

具体的には下記ディレクトリごと消すとうまくいったりします。

  • ~/.gradle/cache
  • ~/.gradle/daemon

終わりに

この記事お役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。