AutoSSL
証明書のデプロイ

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/)、次の処理を行います。

  1. 証明書の準備:

    • 証明書チェーンを個別の 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>)。
  2. ファイルのアップロード:

    • 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)。常に最後にアップロードした証明書です。

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 では一般的です)。
S3 Compatible Storage | AutoSSL