SSLで運用しているmastodonとS3の連携のハマりどころ

  • 4
    Like
  • 0
    Comment

mastodonの画像とか動画をS3で管理しようと思ったらハマったので解決策を書きます。

ハマりどころ

.env.productionのS3の設定項目のうち、S3_PROTOCOLだけでなくS3_ENDPOINTも設定しないと、S3のSSLがうまく働かない。

原因

S3_ENDPOINTを設定しないと、画像のURLがhttps://${bucket-name}.sp-${region}.amazonaws.com/.....のようになる。
ところが、S3のSSL鍵はsp-${region}.amazonaws.comドメインに対してのものなので、「不正なSSL鍵です」という警告が出て、ブラウザでアクセスできない。

結論

.env.productionに以下のようなオプションを書き加えればよい。

S3_ENABLED=true
S3_BUCKET=${your-bucket-name}
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
S3_REGION=${your-bucket-region}
S3_PROTOCOL=https
S3_ENDPOINT=https://s3-${your-bucket-region}.amazonaws.com

感想

.env.production.sampleの書き方がわかりづらいと思った。

備考

他の記事へのコメントで、 S3_PROTOCOL は設定しなくていいよっていうのがありました。 もしかしたら、S3_PROTOCOLを指定しなければ全部うまくいくのかもしれません(未確認)。