Edited at

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

More than 1 year has passed since last update.

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を指定しなければ全部うまくいくのかもしれません(未確認)。