変更履歴
- Rev. 0.7 : 2026年02月21日
- 新規作成
1 はじめに
本記事は、自宅サーバーにサブドメインを設定する方法を、備忘録として残しておく
ものです。
レンタルサーバーにおけるサブドメインの設定は、
SSL化も含めてもほぼ1画面で完了するようなので、本記事からは省かせていただきたいと
思います。
設定作業は、おおまか次の3ステップにまとめることができます。
① DNSへの設定
② Apacheへの設定
③ サブドメインのSSL化
本書での内容は、次の環境に基づいて示しています。
2 DNSにサブドメインを登録
2.1 概要
サブドメインを設定するには、DNSに各サブドメインに対して
Aレコード(IPv4アドレスを指定)、またはAAAAレコード(IPv6アドレスを指定)を
追加する必要があります。
また、サブドメインにメールサービスや特定のサービスを割り当てる場合は、
MXレコードやCNAMEレコードなど、他のタイプのレコードを設定する必要がある場合が
あります。
サブドメインのレコード追加は、
主になレンタルサーバーやドメイン管理会社(ドメインレジストラ)のコントロールパネルから
登録します。
2.2 AレコードまたはAAAAレコードの追加
Aレコード、AAAAレコードの書式は、次のページをご参照ください。
【DNS】DNSサーバー設定のためにDNSレコードを理解する
2.2.1 設定項目
各項目には、次のよう設定します。
【ホスト名】
サブドメインを指定します。
たとえば、“subdomain.example.com”を設定したい場合は、“subdomain”をホスト名として
設定します。
【TYPE】
IPv4アドレスの場合はAレコード、IPv6アドレスの場合はAAAAレコードを選択します。
【TTL】
レコードの生存時間を設定します。
これは、DNS情報がキャッシュされる時間を指します。
一般的な値は86400(1日)ですが、
より頻繁に変更を行う場合は3600(1時間)などに設定することもあります。
【VALUE】
サブドメインが、指し示すべきIPアドレスを入力します。
2.2.2 設定例
ドメインレジストラ“
WordPress.com”の場合を例に、
“subdomain.example.com”というサブドメインを、IPv4アドレス192.0.2.1に
マッピングする
場合を図2.2-1に示します。
3 Apacheにサブドメインを設定
サブドメインは、Apacheでは”VirtualHost”の一つとしてを設定します。
設定ファイル(“/etc/httpd/httpd.conf”か、
“/etc/httpd/conf.d/*.conf”)に
サブドメイン専用のServerNameやDocumentRoot(コンテンツディレクトリ)などを
定義します。
3.1 Virtual Host
本記事では、“/etc/httpd/conf.d”ディレクトリの下に
“subdomain.conf”の名の追加するファイルで、サブドメインを設定する例を示します。
追加する設定ファイルの拡張子は、“.conf”である必要があります。
|
1 2 3 4 5 6 7 8 9 10 |
<VirtualHost *:80> ServerName subdomain.example.com DocumentRoot “/var/www/subdomain.example.com” <Directory “/var/www/subdomain.example.com”> AllowOverride All Require all granted </Directory> CustomLog /var/log/subdomain.example.com/access_log common ErrorLog /var/log/subdomain.example.com/error_log </VirtualHost> |
【ServerName】
仮想ホストが、コンテンツを提供するドメイン名を設定します。
【DocumentRoot】
仮想ホストのWebコンテンツへのパスを設定します。
【CustomLog】
仮想ホストのアクセスログへのパスを設定します。
【ErrorLog】
仮想ホストのエラーログへのパスを設定します。
3.2 コンテンツとログのディレクトリ作成
3.1節で示した設定例では、
次のコンテンツディレクトリとログディレクトリが作成されていなければなりません。
・ コンテンツディレクトリ
・ ログディレクトリ
|
1 2 |
# mkdir -p /var/www/subdomain.example.com # mkdir -p /var/log/subdomain.example.com |
3.3 Apacheの再起動
設定を反映させるため、Apacheを再起動します。
|
1 |
# systemctl restart httpd |
4 サブドメインのSSL化
本章では、Let's EncryptでSSL証明書を取得して、サブドメインをSSL化する方法を示します。
4.1 SSL証明書の新規発行
Let's Encrypt でnoSSL証明書を取得については、次のページをご覧ください。
【Let's Encrypt】
RHEL 10 + Apache 2.4にLet’s Encryptをインストールする(2025年11月Snap版)
下に、“certbot”コマンドで、サブドメインのSSL証明書を取得する一例を示します。
|
1 |
# certbot certonly –webroot -w /var/ www/subdomain.example.com -d subdomain.example.com |
4.2 VirtualHostのSSL対応
3.1節で示したサブドメイン設定ファイルに、 次の変更と行の追加を行います。
① http待ち受けポート番号を変更〔80 ⇒ 443〕
② “SSLEngine on”の行を追加
③ SSL証明書のパス行を追加
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> ServerName subdomain.example.com DocumentRoot “/var/www/subdomain.example.com” # SSLエンジンを有効化 SSLEngine on # SSL証明書と秘密鍵のパスを設定(Let's Encryptの場合) SSLCertificateFile /etc/letsencrypt/live/subdomain.example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/subdomain.example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/subdomain.example.com/chain.pem <Directory “/var/www/subdomain.example.com”> AllowOverride All Require all granted </Directory> CustomLog logs/sub.example.com-access_log combined ErrorLog logs/sub.example.com-error_log </VirtualHost> |
以上
本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。
少しでも役に立てていただければ、うれしく思います。
このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元と著者名は明らかにしてください。
なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

コメント