2026年5月24日
2026年5月24日
サブドメインの作成方法とDNS設定|レコードの追加からサーバー側の設定・SSLまで
サブドメイン(blog.example.com など)は、ドメインを新たに取得しなくても、DNS にレコードを1行追加するだけで作れます。ただし、名前が引けるようになるだけでは表示されず、受け側のサーバー設定と SSL 証明書まで揃って初めて使える状態になります。この記事では、DNS レコードの選び方と追加手順、Web サーバー側の設定、HTTPS 化、WordPress を載せるときの選択肢までを、確認コマンドと合わせて説明します。
サブドメインを作るとは何をすることか
サブドメインの作成は、次の3つの作業に分けて考えると迷いません。
- DNS:
blog.example.comという名前を、どの IP アドレス(またはどのホスト名)に向けるかを登録する - Web サーバー: その名前でアクセスが来たときに、どのディレクトリ(どのアプリ)を返すかを設定する
- SSL 証明書: その名前に対して有効な証明書を用意する
レンタルサーバーの「サブドメイン設定」機能は、このうち2と3(場合によっては1も)をまとめて行うものです。ドメインの DNS をそのレンタルサーバーで管理している場合は DNS レコードも自動で作られることが多い一方、DNS を Cloudflare やレジストラなど別の場所で管理している場合は、DNS 側に自分でレコードを追加する必要があります。どこで DNS を管理しているかを最初に確かめます。
# ドメインの権威DNSサーバー(DNSを管理している場所)を確認する
dig NS example.com +short
ここに表示されたネームサーバーの管理画面が、レコードを追加する場所です。レンタルサーバーの管理画面でサブドメインを作っても、NS が別の事業者を向いていれば DNS には反映されません。「サブドメインを作ったのに表示されない」原因の多くはこの食い違いです。
DNS レコードの選び方(A / AAAA / CNAME)
サブドメインに使うレコードは、主に次の3種類です。
- A レコード: 名前を IPv4 アドレスに向けます。自分の VPS やレンタルサーバーの IP アドレスが分かっている場合に使います。
- AAAA レコード: IPv6 アドレス用です。サーバーが IPv6 に対応していて、Web サーバーも IPv6 で待ち受けている場合だけ追加します。対応していないのに追加すると、IPv6 で接続しようとした端末だけつながらない状態になります。
- CNAME レコード: 名前を別のホスト名の別名にします。外部サービス(ストア構築サービスやヘルプデスクなど)から「このホスト名に CNAME を設定してください」と指定された場合に使います。IP アドレスが変わってもサービス側の変更に追従できるのが利点です。
CNAME には制約があります。CNAME を設定した名前には、ほかのレコード(MX や TXT など)を同時に置けません。また、ゾーンの頂点(example.com そのもの)には CNAME を置けないため、サブドメインでのみ使うものと考えてください。
ゾーンファイルの書式で表すと次のようになります。管理画面では「ホスト名」「種別」「値」「TTL」の欄に分けて入力するのが一般的です。
; ホスト名の欄には「blog」だけを入れる管理画面が多い(ドメイン名は自動で補われる)
blog 3600 IN A 203.0.113.10
blog 3600 IN AAAA 2001:db8::10
shop 3600 IN CNAME shops.example-saas.net.
入力でつまずきやすいのはホスト名の欄です。管理画面によっては blog と入れると blog.example.com になり、blog.example.com と入れると blog.example.com.example.com になってしまうものがあります。保存後の一覧表示で、意図した完全な名前になっているかを確認します。
TTL は、変更の予定がなければ 3600 秒(1時間)程度で十分です。作成直後に設定を何度か直しそうなら、300 秒など短めにしておき、安定してから戻すと調整が楽になります。
Cloudflare を使っている場合
Cloudflare で DNS を管理している場合は、レコードごとにプロキシ(オレンジの雲のアイコン)を有効にするかを選べます。有効にすると訪問者には Cloudflare の IP アドレスが返り、Cloudflare 経由で配信されます。SSH や FTP など Web 以外の用途で使う名前はプロキシを無効(DNS のみ)にします。画面の表記は変わることがあるため、公式ドキュメントも参照してください(2026年10月現在)。
反映を確認する
レコードを追加したら、まず権威 DNS サーバーに直接問い合わせます。ここで正しい値が返れば、DNS の設定自体は合っています。
# 権威DNSサーバーに直接問い合わせる(キャッシュを経由しない)
dig @ns1.example-dns.net blog.example.com A +short
# 普段使っているリゾルバー経由で確認する
dig blog.example.com A +short
権威サーバーでは正しく返るのに、手元では古い結果や「存在しない」という結果になる場合は、キャッシュが原因です。特に、レコードを作る前に一度アクセスしていた場合、「存在しない」という応答(NXDOMAIN)自体がキャッシュされます。この否定応答の保持時間は SOA レコードの設定で決まるため、しばらく待つか、別のリゾルバー(dig @1.1.1.1 など)で確認します。
Web サーバー側の設定
DNS が正しく引けても、Web サーバーがその名前を知らなければ、メインサイトや既定のページが表示されます。
レンタルサーバーの場合
管理画面のサブドメイン設定で blog.example.com を追加すると、公開ディレクトリが自動で作られるのが一般的です。作られたディレクトリの場所を控えておき、そこにファイルや WordPress を設置します。DNS を外部で管理している場合は、レンタルサーバーの IP アドレスを確認して A レコードを追加します。
VPS(Apache)の場合
バーチャルホストを1つ追加します。設定ファイルの場所や有効化の手順はディストリビューションによって異なるので、手元の構成に合わせてください。
<VirtualHost *:80>
ServerName blog.example.com
DocumentRoot /var/www/blog
<Directory /var/www/blog>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/blog_error.log
CustomLog ${APACHE_LOG_DIR}/blog_access.log combined
</VirtualHost>
設定を変えたら、反映の前に構文チェックを通します。
sudo apachectl configtest
sudo systemctl reload apache2
Nginx の場合も考え方は同じで、server_name blog.example.com; を持つ server ブロックを追加し、sudo nginx -t で確認してから reload します。
SSL 証明書を用意する
いまはサブドメインでも HTTPS が前提です。DNS が引けて HTTP でアクセスできる状態になってから証明書を取得します。DNS が反映される前に申請すると、ドメインの所有確認に失敗します。
レンタルサーバーでは、サブドメインごとに無料 SSL を有効にする設定があることが多いです。VPS で Let's Encrypt を使う場合は、Certbot で名前を指定して取得します。
sudo certbot --apache -d blog.example.com
サブドメインが増える予定なら、*.example.com のワイルドカード証明書という選択肢もあります。Let's Encrypt でワイルドカード証明書を取得するには、DNS に TXT レコードを置いて所有を確認する DNS-01 方式が必要です。DNS 事業者の API と連携できるプラグインを使うと、更新の自動化がしやすくなります。
WordPress をサブドメインに置くときの選択肢
サブドメインで WordPress を使う方法は2つあります。
- 独立した WordPress を設置する: メインサイトとは別のデータベース(または別のテーブル接頭辞)で、普通に新規インストールします。プラグインやユーザーを分けたい場合に向いています。
- マルチサイト(サブドメイン型)にする: 1つの WordPress で複数サイトを管理します。
wp-config.phpでSUBDOMAIN_INSTALLをtrueにする構成で、サイトを追加するたびに DNS を触らずに済むよう、ワイルドカードの DNS レコード(*の A レコード)とワイルドカード証明書を組み合わせるのが一般的です。
マルチサイトは後から元に戻すのが大変なので、導入前にバックアップを取り、ステージング環境で試してから本番に移すことをおすすめします。
うまくいかないときの確認順
dig NS example.com +shortの結果と、レコードを追加した管理画面が一致しているか- 権威サーバーへの
dig @権威サーバーで正しい値が返るか(ホスト名の二重入力がないか) curl -I http://blog.example.com/で返ってくるのが、意図したサーバー・ディレクトリの応答か- 証明書がその名前に対して発行されているか(ブラウザの警告や
curl -vI https://blog.example.com/の出力で確認)
まとめ
- サブドメインの作成は「DNS」「Web サーバー」「SSL 証明書」の3つの作業で成り立っています。
- レコードを追加する場所は、
dig NSで確認した権威 DNS サーバーの管理画面です。 - 自分のサーバーなら A(必要なら AAAA)、外部サービスに向けるなら CNAME を使います。CNAME は他のレコードと共存できません。
- 確認は権威サーバーへの直接問い合わせから始め、キャッシュの影響と切り分けます。
- 証明書は DNS が反映されてから取得し、サブドメインが増えるならワイルドカード証明書も検討します。