6
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

CircleCIでx509という証明書エラーに遭遇したときの対処

エラー状況

CircleCIでのビルド・デプロイの設定をしているところ、
x509: failed to load system roots and no roots provided
という内容のエラーがrestore_cachesave_cacheで発生していました。

エラー内容詳細

適当に文字列は改変しています。

Skipping cache - error checking storage: RequestError: send request failed
caused by: Get https://circle-production-customer-artifacts.s3.amazonaws.com/?list-type=2&prefix=picard%2F59d0000000000global%2Fcaches%2FXXXXXXXX%22222-yhTkxxxxxxxxxxxxxxxxxqrvrm8IW_Hrsxxxxxx%3D: x509: failed to load system roots and no roots provided

どうやら、AWS S3にオレオレ自己証明書を使って暗号化してキャッシュを保存する動作のようです。

原因

CircleCIのビルドプロセスでcacheの暗号化に使うroot証明書を自分で生成しているのですが、そのためのコマンドが入っていない環境を使っていることが原因でした。

今回ビルドに指定していたDockerイメージがalpineをベースにしたもので、最低限のライブラリしか入れていなかったのです。

対処

ca-certificatesパッケージをインストールする。

alpine linuxならば以下のコマンドをDockerfileに追加します。

RUN apk add --no-cache ca-certificates

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
6
Help us understand the problem. What are the problem?