Edited at

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