[PR] 本記事にはプロモーションが含まれています。

【Cloudflare】Cloudflare Tunnelでサブドメインを追加する手順|公開アプリケーションルートとApacheの設定

Cloudflare

【2026年6月17日時点の情報です】

Cloudflare Tunnel で公開している自宅サーバーに、自作のアプリ用のサブドメインを追加した手順です。この記事では、次の例で説明します。

項目例
メインのドメイン(ブログ)softdev-learn.cc
追加するサブドメインapp.softdev-learn.cc

Cloudflare Tunnel の「公開アプリケーションルート」に登録すると、DNS レコードは Cloudflare が自動で作ってくれるので、自分で追加する必要はありません。トンネルそのものの作り方は「Cloudflare Tunnelで自宅サーバーを公開する方法」で紹介しています。

Cloudflare の画面の名前や並びは、ときどき変わります。この記事の画面は2026年6月時点のものです。

この記事の対象:
Cloudflare Tunnel(cloudflared)でサーバーを公開している人向けです。
Tunnel を使わず、ふつうに DNS でサブドメインを足したいだけなら、Cloudflare の「DNS」→「レコード」→「レコードを追加」で、名前にサブドメイン(例:app)を入れ、タイプ A(サーバーの IP アドレス)か CNAME(つなぎ先のホスト名)を作れば追加できます。

急いでいる人向け:手順の要点

  1. 「Zero Trust」→「ネットワーク」→「コネクタ」で、使っているトンネルを開く
  2. 「公開アプリケーションルート」のタブで「+ 公開アプリケーションルートを追加」
  3. サブドメインとドメインを選び、タイプ HTTP・URL 127.0.0.1:80 で保存(DNS レコードは自動でできる)
  4. Apache に、ServerName をサブドメインにした VirtualHost を足して再起動する

ステップ1:トンネルの画面を開く

Cloudflare のダッシュボードにログインし、「Zero Trust」→「ネットワーク」→「コネクタ」を開きます。

Cloudflare Tunnelでサブドメインを追加する手順:トンネルの画面を開く
Cloudflare Tunnelでサブドメインを追加する手順:トンネルの画面を開く(2)

動いているトンネル(例:my-home-server)をクリックします。

Cloudflare Tunnelでサブドメインを追加する手順:トンネルの画面を開く(3)

ステップ2:「公開アプリケーションルート」のタブを開く

上のタブから「公開アプリケーションルート」(英語の画面では Published application routes)を開きます。

Cloudflare Tunnelでサブドメインを追加する手順:「公開アプリケーションルート」のタブを開く

隣にある「ホスト名ルート」は、外に公開しない内部の通信のためのものです。Web サイトを公開するときは「公開アプリケーションルート」のほうを使います。

ステップ3:サブドメインを登録する

右側の「+ 公開アプリケーションルートを追加」をクリックします。

Cloudflare Tunnelでサブドメインを追加する手順:サブドメインを登録する

次のように入れて、右下の「保存」をクリックします。

項目入れるもの
サブドメインapp
ドメインsoftdev-learn.cc(プルダウンから選ぶ)
パス空欄のまま
タイプHTTP
URL127.0.0.1:80
Cloudflare Tunnelでサブドメインを追加する手順:サブドメインを登録する(2)

タイプを HTTP にしているのは、Cloudflare からサーバーまではトンネルの中を通るので、サーバーの中では HTTP で受けているからです。読者のブラウザと Cloudflare のあいだは HTTPS になります。

ステップ4:DNS レコードができたか確かめる

「ドメイン」→「概要」でドメインをクリックします。

Cloudflare Tunnelでサブドメインを追加する手順:DNS レコードができたか確かめる

「DNS レコード」を開きます。

Cloudflare Tunnelでサブドメインを追加する手順:DNS レコードができたか確かめる(2)

一覧に、タイプ「トンネル」、名前 app.softdev-learn.cc、「プロキシ済み」のレコードが自動で追加されていれば完了です。

Cloudflare Tunnelでサブドメインを追加する手順:DNS レコードができたか確かめる(3)

ステップ5:Apache でサブドメインを見分ける

Cloudflare の設定だけでは、まだ終わりません。ステップ3でトンネルの行き先をブログと同じ 127.0.0.1:80 にしたので、Apache が「どのドメインへのアクセスか」を見分けて、それぞれの内容を返す必要があります。この設定がないと、app.softdev-learn.cc を開いてもブログが表示されたり、WordPress がメインのドメインへ転送したりします。

サブドメイン用の設定ファイルを作り、ServerName にサブドメインを、DocumentRoot にアプリのファイルを置くフォルダーを書きます。

Apache
# /etc/httpd/conf.d/app.conf
<VirtualHost *:80>
    ServerName app.softdev-learn.cc
    DocumentRoot /var/www/app

    <Directory /var/www/app>
        Require all granted
    </Directory>
</VirtualHost>

ブログの設定にも ServerName softdev-learn.cc が書かれているか確かめます。Apache は、どの ServerName にも当てはまらないアクセスを、最初に読み込んだ設定で受けます。

設定に間違いがないか確かめてから、Apache に読み込み直させます。

Bash
sudo apachectl configtest
sudo systemctl reload httpd

Syntax OK と出れば、設定の書き方に問題はありません。

開いて確かめる

ブラウザで https://app.softdev-learn.cc/ を開くか、curl でヘッダーを確かめます。

Bash
curl -sI https://app.softdev-learn.cc/

HTTP/2 200 が返ってきて、ブログではなくアプリの内容が出れば成功です。curl の使い方は「curlコマンドの基本と使い方」で紹介しています。

知っておきたいこと

HTTPS は自動で付く

Cloudflare の無料の証明書は、app.softdev-learn.cc のような1段目のサブドメインにも自動で使われるので、証明書を自分で用意する必要はありません。ただし、a.b.softdev-learn.cc のような2段目のサブドメインは、無料の証明書の対象外です。

WAF のルールはサブドメインにもかかる

Cloudflare の WAF のルールは、ドメイン全体にかかります。海外からのアクセスを止めるルールなどは、新しいサブドメインにもそのまま効きます。サブドメインだけ扱いを変えたいときは、ルールの式にホスト名の条件を足します(「WAFのカスタムルールで自宅サーバーのWordPressを守る」)。

まとめ

  • Cloudflare Tunnel の「公開アプリケーションルート」にサブドメインを登録すると、DNS レコードは自動でできる
  • 「ホスト名ルート」は内部の通信用。公開するときは「公開アプリケーションルート」
  • 行き先をブログと同じ 127.0.0.1:80 にするなら、Apache に ServerName で見分ける設定を足す
  • HTTPS は1段目のサブドメインまで自動で付く。WAF のルールもそのままかかる

Cloudflare が何をしているのかは「Cloudflareとは?仕組みと無料プランでできること」で紹介しています。

コメント