HTTP-01はSSL証明書取得のための最も一般的なACMEチャレンジタイプです。CAがHTTPポート80でWebサーバーから特定のファイルを取得することで、ドメインの管理を検証します。DNS-01よりシンプルですが、ワイルドカード証明書には使用できません。
仕組み
- Let’s Encryptがトークン(ランダムな文字列)を提供
http://yourdomain.com/.well-known/acme-challenge/{token}にファイルを作成- ファイルの内容はキー認証 — トークンとACMEアカウントキーのサムプリントの組み合わせ
- Let’s Encryptが公開インターネットからこのURLを取得
- 内容が一致すれば、チャレンジに合格し証明書が発行
GetHTTPSでは、ステップ1と3は自動的に処理されます。画面に表示された値でサーバーにファイルを配置するだけです。
チャレンジファイルの配置方法
SSH経由(Linux/Nginx/Apache)
mkdir -p /var/www/html/.well-known/acme-challenge/
echo "KEY_AUTHORIZATION_FROM_GETHTTPS" > /var/www/html/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS
curl http://yourdomain.com/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS
cPanelファイルマネージャー経由
public_htmlに移動.well-knownフォルダを作成 → その中にacme-challengeフォルダを作成- トークン値をファイル名として新しいファイルを作成
- キー認証をファイル内容として貼り付け
- パーミッションが644であることを確認
FTP経由
- サイトルートに接続
.well-known/acme-challenge/ディレクトリパスを作成- トークン名のテキストファイルにキー認証を含めてアップロード
要件
- ドメインがサーバーのパブリックIPアドレスに解決される必要がある
- ポート80が開いている必要 — Let’s Encryptは常にHTTPで検証(HTTPSではない)
- レスポンスがHTTP 200 OKを返す必要がある
- 認証なしでファイルにアクセスできる必要がある
HTTP-01を使うべき場合
| シナリオ | HTTP-01? |
|---|---|
| 単一ドメイン証明書 | ✅ はい — 最もシンプル |
| ドメイン + www証明書 | ✅ はい — 名前ごとに1つのチャレンジ |
ワイルドカード証明書(*.example.com) | ❌ いいえ — DNS-01を使用 |
| ポート80がブロック | ❌ いいえ — DNS-01を使用 |
| Cloudflareプロキシの背後 | ⚠️ まずDNSをグレークラウドにする必要あり |
トラブルシューティング
チャレンジファイルが404を返す
- 正確なパスを確認 —
/.well-known/acme-challenge/TOKENで余分なスラッシュがないこと - ファイルパーミッションを確認 — chmod 644
- Nginx: 設定がドットファイルをブロックしている可能性。
location /.well-known/acme-challenge/ { root /var/www/html; allow all; }を追加 - cPanel: ファイルマネージャーが
.well-knownを隠している場合あり — 「隠しファイルを表示」を有効に
ポート80がブロック
- ポート80を開く(検証中だけでも一時的に)
- DNS-01チャレンジに切り替え — ポート80不要
- ホスティングプロバイダーに
.well-knownをプロキシ経由で許可するよう依頼
よくある質問
証明書取得後にチャレンジファイルを削除できますか?
はい。ファイルは検証中にのみ必要です。証明書が発行されたら、.well-known/acme-challenge/ ディレクトリとその内容を削除してください。更新時に新しいファイルを作成します。
ファイルはHTTPS経由で提供する必要がありますか?
いいえ。Let’s EncryptはHTTP-01を常に**平文HTTP(ポート80)**で検証します。サイトがHTTPSに対応していてもです。同一ドメインのHTTP→HTTPSリダイレクトはフォローされますが、最初のリクエストは常にHTTPです。
GetHTTPSの「事前チェック」とは何ですか?
Let’s Encryptに送信する前に、GetHTTPSはチャレンジファイルが公開インターネットからアクセス可能であることを確認します(GoogleのDNS-over-HTTPS経由)。これにより、レート制限を消費する前に設定エラーを検出できます — 他のブラウザベースツールにはない機能です。