@kyanny's blog

My thoughts, my life. Views/opinions are my own.

MinIO server + nginx (SSL/TLS) proxy のセットアップ手順

仕事で調査検証用にテスト環境を作る必要があり、割と手間だったのと、おそらくまたやるだろうと思ったのでスクリプトにまとめた。

github.com

そもそもの動機・目的は、「自己署名証明書で SSL/TLS 有効化した nginx を proxy server として背後に minio server が起動している環境で、プロキシを通して minio と通信できない」という問題の調査のためだった。

余談、当初の仮説は「nginx が特定の HTTP ヘッダを除外・変更して、minio server がリクエストヘッダ等から計算した Signature の値が Authorization ヘッダで送られた Signature の値と一致せず、認証エラーになっているのではないか?」というものだったが、違った。


学び・ハマったところ

  • mc (minio client) の alias set コマンドは minio server と疎通できないと失敗する
  • minio の自動起動スクリプトは https://github.com/minio/minio-service で提供されている
  • が、システムに minio-user が作成済みでないと動かないとか、ドキュメントに書かれてない前提条件がある
  • useradd -s /sbin/nologin username でログインできないユーザを作れる
  • useradd -U username で username と同名の group を自動作成できる
  • 自己署名証明書をシステムの /etc/ssl/certs/ 辺りにインストールして update-ca-certificates しても curl はエラーになる
  • curl --cacert /path/to/cert.crt オプションをつける必要あり
  • bash *.sh とかしても複数のシェルスクリプトを順番に実行してくれるわけではない(最初のだけが実行される)