S3 Compatible Storage
SSL 証明書を任意の S3 互換オブジェクトストレージのバケットへ自動デプロイする方法です。
概要
AutoSSL は、SSL 証明書のファイルを任意の S3 互換オブジェクトストレージのバケットへ自動でアップロードできます。カスタムの HTTPS エンドポイントとバケット名を指定するため、専用プロバイダーがない MinIO、Wasabi、Ceph などの S3 互換サービスに使えます。
各証明書はバージョン付きのアーカイブパスに保存され、あわせて latest/ パスも更新されます。Nginx、Caddy、オブジェクトストレージから証明書を取得する独自スクリプトなどの後続処理が、最新の証明書を見つけやすくなります。
このデプロイの管理と実行は、デプロイ管理 を参照してください。
設定パラメーター
AutoSSL コンソールでこのデプロイ先を追加または編集するときは、次のパラメーターを設定します。
| パラメーター | 説明 | 例 |
|---|---|---|
| エンドポイント | S3 互換 API の HTTPS URL です。HTTP のエンドポイントは使えません。 | https://minio.example.com |
| リージョン | (任意) リクエスト署名に使うリージョンです。既定は us-east-1 です。プロバイダーが要求する値を使ってください。 | us-east-1 |
| バケット名 | 証明書ファイルをアップロードするバケットの名前です。 | my-ssl-certs |
| オブジェクトキーのプレフィックス | (任意) バケット内で証明書ファイルを整理するプレフィックスです。設定すると、このプレフィックスの下にアップロードされます。末尾のスラッシュはなくても構いません。 | certs/example.com/ |
| パススタイルを強制 | (任意) パススタイルの URL(https://endpoint/bucket/key)を有効にします。MinIO や一部のセルフホスト型 S3 互換サービスでは有効にしてください。 | true(MinIO の場合) |
エンドポイントは HTTPS である必要があります。セキュリティのため、AutoSSL は HTTP のエンドポイントを拒否します。
仕組み
AutoSSL が証明書を S3 互換バケットへデプロイするとき(例: my-ssl-certs、プレフィックス certs/example.com/)、次の処理を行います。
-
証明書の準備:
- 証明書チェーンを個別の PEM ファイルに分けます。
cert.pem(リーフ証明書)、privkey.pem(秘密鍵、PKCS#8)、chain.pem(中間証明書)、fullchain.pem(フルチェーン)です。 - 追跡できるよう、証明書のメタデータを含む
README.mdを生成し、https://autossl.dev へのリンクを付けます。 - 証明書の
notBeforeと SHA1 フィンガープリントから、アーカイブディレクトリ名を作ります(形式:YYYY-MM-DD_<first 8 chars of SHA1>)。
- 証明書チェーンを個別の PEM ファイルに分けます。
-
ファイルのアップロード:
- 4 つの PEM ファイルと README.md を、バケット内の 2 つのパス にアップロードします。
- アーカイブパス —
certs/example.com/2026-05-30_e5f6a7b8/cert.pem(およびprivkey.pem、chain.pem、fullchain.pem、README.md)。発行ごとに一意で、上書きされません。 - 最新パス —
certs/example.com/latest/cert.pem(およびprivkey.pem、chain.pem、fullchain.pem、README.md)。常に最後にアップロードした証明書です。
- アーカイブパス —
- 4 つの PEM ファイルと README.md を、バケット内の 2 つのパス にアップロードします。
latest/ パスを使うと、後続のサービスは決まったオブジェクトキーから現在の証明書を取得できます。過去の証明書は、バージョン付きのアーカイブディレクトリに残ります。
バケット構成の例
証明書を複数回更新したあとのバケットは、次のようになります。
certs/example.com/
├── 2026-03-01_a1b2c3d4/
│ ├── cert.pem
│ ├── privkey.pem
│ ├── chain.pem
│ ├── fullchain.pem
│ └── README.md
├── 2026-05-30_e5f6a7b8/
│ ├── cert.pem
│ ├── privkey.pem
│ ├── chain.pem
│ ├── fullchain.pem
│ └── README.md
└── latest/
├── cert.pem
├── privkey.pem
├── chain.pem
├── fullchain.pem
└── README.md秘密鍵の形式
privkey.pem は PKCS#8 形式(-----BEGIN PRIVATE KEY-----)です。Nginx、Caddy、Traefik、OpenSSL 1.1+ など、近年の Web サーバーやツールで広く使えます。
環境が PKCS#1(RSA 鍵の場合は -----BEGIN RSA PRIVATE KEY-----)を要求する場合は、使う前にローカルで変換してください。
openssl rsa -in privkey.pem -out privkey-pkcs1.pemアクセスキーの要件
このプロバイダーには S3 互換ストレージの資格情報 が必要です。
必要な権限
アクセスキーには、対象バケットへオブジェクトをアップロードする権限が必要です。少なくとも次の S3 アクションが必要です。
- 対象バケット(またはバケットのプレフィックス)に対する
s3:PutObject
MinIO では、対象バケットで s3:PutObject を許可するポリシーをユーザーに付与してください。
トラブルシューティング
| 症状 | 対処 |
|---|---|
| 接続拒否または DNS エラー | エンドポイント URL が正しく、AutoSSL から到達できることを確認します。 |
| アクセス拒否 | アクセスキーにバケットへの PutObject 権限があるか確認します。 |
| 署名の不一致 | プロバイダーが要求する リージョン の値に変えてみてください。 |
| カスタムエンドポイントでバケットが見つからない | パススタイルを強制 を有効にします(MinIO では一般的です)。 |