Azure Blob Storage
SSL 証明書を Azure Blob Storage コンテナーへ自動デプロイする方法です。
概要
AutoSSL は、SSL 証明書のファイルを Azure Blob Storage のコンテナーへ自動でアップロードできます。各証明書はバージョン付きのアーカイブパスに保存され、あわせて latest/ パスも更新されます。Nginx、Caddy、Blob Storage から証明書を取得する独自スクリプトなどの後続処理が、最新の証明書を見つけやすくなります。
このデプロイの管理と実行は、デプロイ管理 を参照してください。
設定パラメーター
AutoSSL コンソールでこのデプロイ先を追加または編集するときは、次のパラメーターを設定します。
| パラメーター | 説明 | 例 |
|---|---|---|
| ストレージアカウント名 | BLOB コンテナーをホストする Azure Storage アカウントの名前です。 | mystorageaccount |
| コンテナー名 | 証明書ファイルをアップロードする BLOB コンテナーの名前です。 | ssl-certs |
| BLOB 名のプレフィックス | (任意) コンテナー内で証明書ファイルを整理するプレフィックスです。設定すると、このプレフィックスの下にアップロードされます。末尾のスラッシュはなくても構いません。 | certs/example.com/ |
仕組み
AutoSSL が証明書を BLOB コンテナーへデプロイするとき(例: ストレージアカウント mystorageaccount、コンテナー 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/ パスを使うと、後続のサービスは決まった BLOB 名から現在の証明書を取得できます。過去の証明書は、バージョン付きのアーカイブディレクトリに残ります。
コンテナー構成の例
証明書を複数回更新したあとのコンテナーは、次のようになります。
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アクセスキーの要件
Azure Blob Storage を使うため、このプロバイダーには Azure サービスプリンシパル が必要です。
必要な権限
サービスプリンシパルには、対象コンテナーで BLOB を作成し、上書きする権限が必要です。ストレージアカウントまたはコンテナーのスコープで、次の データプレーン RBAC ロールを割り当ててください。
- Storage Blob Data Contributor(推奨)
Storage Account Contributor のようなコントロールプレーンのロールでは、BLOB のアップロードは許可されません。デプロイが This request is not authorized to perform this operation で失敗する場合は、下の RBAC ロールの割り当てとストレージアカウントのファイアウォール設定の両方を確認してください。
RBAC ロールを割り当てる
コンテナー のスコープでロールを付与すると、必要最小限の権限に抑えられます。
- Azure Portal で Storage Account → Containers を開き、対象コンテナーを選びます。
- Access control (IAM) → Add role assignment を開きます。
- Role タブで Storage Blob Data Contributor を選びます。
- Members タブで次を設定します。
- Assign access to を User, group, or service principal にします。
- Select members をクリックします。
- アプリ登録の 表示名(例:
AutoSSL)または Client ID で検索します。 - 種類が Application または Service principal の結果を選びます。ユーザーアカウントは選びません。
- 内容を確認して割り当てます。
検索にアプリが出ない場合は、Microsoft Entra ID → Enterprise applications を開き、Application type を All applications にして、サービスプリンシパルがあることを確認してください。作成直後のプリンシパルは、IAM の検索に出るまで数分かかることがあります。
詳細は Azure Blob Storage access control documentation を参照してください。
ストレージアカウントのファイアウォールを設定する
AutoSSL はパブリックインターネット経由で Blob Storage に接続します。ストレージアカウントがネットワークを制限していると、RBAC が正しくてもリクエストは拒否されます。
- Storage Account → Networking → Firewalls and virtual networks を開きます。
- 次のいずれかを選びます。
- Enabled from all networks — 初期設定と動作確認には最も簡単です。
- Enabled from selected networks — Address range に AutoSSL の送信元 IP アドレスを追加します。
- 変更を保存し、デプロイを再試行します。
ストレージアカウントが仮想ネットワークまたはプライベートエンドポイントからのみ到達できる場合、互換性のあるネットワーク経路を用意しない限り、AutoSSL はパブリックインターネットから接続できません。