docker
SendGrid
alpine

sendgridでx509: certificate signed by unknown authorityと出たときの対処法

この記事は以下の環境を前提としています

  • alpineのDockerImageを使用している
  • Docker上のアプリでsendgridを使用してメールを送信している

現象

sendgrid-goを使用してFargateのDockerコンテナからsendgridを使用したところ、以下のようなエラーが出ました。

UNKNOWN: failed send email. to: &{xxx xxx@example.com}: Post https://api.sendgrid.com/v3/mail/send: x509: certificate signed by unknown authority

この現象はDockerを使用していないローカル環境だと起こりません。

原因

DockerImage内にCA証明書がないため起こるエラーです。

docker内
$ ls -l /etc/ssl/certs
total 0

対処法

Dockerfileに以下を追加してください。

RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*

これで信頼されているCA証明書のインストールができます。

docker内
$ ls -l /etc/ssl/certs | wc -l
304