0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XServer(新コントロールパネル)+ Cloudflare環境でサブドメインを追加するとずっと「無効なURL」になる問題

0
Last updated at Posted at 2026-05-27

はじめに

XServer でホスティングしているドメインの DNS を Cloudflare で管理している環境で、新たにサブドメインを追加しようとしたところ、何をしてもサイトが「無効なURL」のまま表示されず、原因がわかるまでに時間がかかりました。

同じ構成でハマる人が多そうなのでまとめます。

Screenshot 2026-05-26 at 9.19.48.png
Screenshot 2026-05-26 at 9.19.48.png
Screenshot 2026-05-26 at 9.20.01.png
Screenshot 2026-05-26 at 9.21.06.png

環境

  • ドメイン管理(DNS): Cloudflare(プロキシ有効、オレンジ雲)
  • ホスティング: XServer(新コントロールパネル)
  • やりたかったこと: sub.example.com というサブドメインを追加して静的サイトを公開する

やったこと(失敗した手順)

  1. XServerサーバーパネル →「ドメイン設定」→「サブドメイン設定」から sub.example.com を追加
  2. 同じくサーバーパネル →「SSL設定」でSSL設定をONにしようとした
  3. SSLの設定が「ネームサーバーがXServerを向いていないため設定できません」のようなエラーになった

ここで詰まりました。

症状

ブラウザで https://sub.example.com にアクセスすると、以下のXServerのエラーページが返り続ける。

無効なURLです。
プログラム設定の反映待ちである可能性があります。
しばらく時間をおいて再度アクセスをお試しください。

「反映待ちかも」と書いてあるので数時間待っても変わらず、原因がまったくわかりませんでした。

原因の調査

CloudflareのIPに向いている

sub.example.com のDNSを確認すると、Cloudflareのエッジサーバー(104.21.x.x など)に向いていました。XServerのIPではありません。Cloudflareがプロキシとして前段に入っているので当然です。

XServerに直接アクセスして切り分ける

XServerのIPに直接アクセスして、HTTPとHTTPSを切り分けてみました。

# HTTP(ポート80)→ XServerに直接
curl -s -H 'Host: sub.example.com' http://<XServerのIP>/
301 Moved Permanently
Location: https://sub.example.com/

HTTPではXServerはドメインを認識しており、HTTPSへリダイレクトしている。

# HTTPS(ポート443)→ XServerに直接
curl -sk -H 'Host: sub.example.com' https://<XServerのIP>/
<title>無効なURLです</title>

HTTPSではエラーになる。

問題の本質

プロトコル XServerの挙動
HTTP ✅ ドメインを認識して301リダイレクト
HTTPS ❌ 「無効なURL」

XServerはサブドメインの登録は正常に完了していて、HTTP では正しく動いています。しかし HTTPS(SSL)の設定が完了していないため、ポート443へのリクエストがエラーになっていました。

原因まとめ

XServer の新コントロールパネルでは、「サブドメイン設定」と「SSL設定」が独立した別の操作です。

サブドメインを追加しただけでは HTTP しか動きません。HTTPS で公開するには SSL 設定を別途行う必要があります。

さらに今回の場合、DNS が Cloudflare 管理になっているため、XServer のパネルから SSL を設定しようとすると「ネームサーバーがXServerを向いていない」としてエラーになります。XServer の SSL 設定は Let's EncryptHTTP-01 チャレンジを使っており、ドメインがXServerのIPに向いていないとチャレンジが通らないためです。

Cloudflare を使っていると、この**「Cloudflare経由でもホスト名の解決はXServerまで届くが、SSL設定だけが通らない」**という状態になりやすく、エラーメッセージも「無効なURL」とわかりにくいため気づきにくいです。

XServer の新コントロールパネルでの挙動です。旧パネルでは動作や画面が異なる可能性があります。

解決策

方法A: 一時的にCloudflareプロキシを無効化してSSLを発行する(推奨)

最もシンプルで、完全なHTTPS通信が確保できるため推奨です。CloudflareのダッシュボードでサブドメインのレコードをDNSオンリー(グレー雲)に切り替えると、ドメインが直接XServerのIPに向きます。その状態でXServerのSSL設定を行うと、Let's Encryptのチャレンジが通ります。

  1. Cloudflareダッシュボード → DNSレコードで sub.example.comプロキシをオフ(オレンジ雲 → グレー雲)
  2. XServerサーバーパネル →「SSL設定」→「独自SSL設定追加」
  3. SSL証明書の発行を確認(数分かかる)
  4. Cloudflareのプロキシを再度オンに戻す

方法B: CloudflareのSSLモードを「フレキシブル」にする

この方法は非推奨です。 Cloudflare は現在「フレキシブル」モードの使用を推奨していません(参考)。緊急の回避策としてのみ検討し、恒久的な運用には使わないでください。

Cloudflare → XServer 間の通信をHTTPにする設定です。XServerへの到達はHTTPで行い、ユーザー ↔ Cloudflare 間はHTTPSになります。

ただし、XServerはHTTPへのアクセスをHTTPSにリダイレクトする設定になっているため、リダイレクトループが発生する場合があります。.htaccess でXServerのリダイレクトを無効にするなどの追加対応が必要です。

方法C: Cloudflare Origin Certificate を使う

Cloudflareが発行するオリジン証明書をXServerにインストールする方法です(Cloudflare Origin CA certificates)。最も本格的な構成になります。

XServerの共有ホスティングでは実質的に使用できません。 XServerの共有サーバーはユーザーが任意のSSL証明書をアップロードしてインストールする機能を提供していないため、この方法は実現できません。VPS・専用サーバー環境での利用を想定した方法です。

チェックリスト

XServer + Cloudflare 構成でサブドメインを追加する際の確認ポイントです。

  • XServerサーバーパネルの「ドメイン設定」でサブドメインが追加されているか
  • XServerサーバーパネルの「SSL設定」でサブドメインのSSLが別途設定されているか
  • CloudflareのSSL/TLSモードがXServer側の設定と整合しているか
  • CloudflareのDNSレコードがプロキシ(オレンジ雲)かDNSオンリー(グレー雲)かを意識しているか

まとめ

  • XServer(新コントロールパネル)では、サブドメインの追加とSSL設定は別々の操作
  • DNS が Cloudflare 管理の場合、XServer のパネルから直接 SSL を発行できない
  • 症状が「無効なURL」という汎用的なエラーメッセージなので原因に気づきにくい
  • curl で HTTP と HTTPS を切り分けることで「SSL設定の問題」と特定できる

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?