はじめに
「Cloudflareにドメインを登録したけど、nslookupしても何も返ってこない」という状態から、CloudflareのフレキシブルモードでHTTPSを有効にするまでの手順を書いていきます。
VPS側へのSSL証明書(Let's Encrypt)の導入と**フル(厳密)**モードへの移行は後編で!
この記事は、僕とAIのやり取りをまとめたものです!主は、Claude Codeと Codexを使用しています。
※ちゃんとソースを見るようにしてはいますが、一部誤った情報を記載してしまっている場合があります。その場合は、優しくコメントで教えてください♪
環境
- ドメイン管理:Cloudflare
- サーバー:ConoHa VPS
- Webサーバー:nginx
Step 1:ドメイン登録だけではDNSは機能しない
Cloudflare にドメインを登録しただけでは、nslookup しても答えが返ってこないのか。。。なるほど。
$ nslookup example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
*** Can't find example.com: No answer
ドメイン登録 ≠ DNS レコードの設定です。別々の作業が必要らしい。
Step 2:ネームサーバーの確認
まずネームサーバーが Cloudflare を向いているか確認してみます。
$ nslookup -type=NS example.com 8.8.8.8
以下のように Cloudflare のネームサーバーが返ってくれば OK です。
example.com nameserver = evelyn.ns.cloudflare.com.
example.com nameserver = hunts.ns.cloudflare.com.
Step 3:CloudflareにAレコードを追加する
Cloudflare ダッシュボードで DNS レコードを追加します。
- dash.cloudflare.com にログイン
- 対象ドメインを選択
- DNS → レコード → レコードを追加
| タイプ | 名前 | IPv4アドレス | プロキシ |
|---|---|---|---|
| A | @ |
ConoHaのIPアドレス | オン(推奨) |
プロキシ状態(オレンジ雲 vs グレー雲)
| 状態 | 説明 |
|---|---|
| オン(Proxied) | CloudflareのCDN・DDoS保護が有効。VPSのIPが隠れる。推奨 |
| オフ(DNS only) | 単純なDNS解決のみ。VPSのIPが直接公開される |
www は必要?
@(ルートドメイン)だけでも十分なケースが多いです。www.example.com でもアクセスできるようにしたい場合は追加しましょう。
Step 4:DNS反映の確認
Aレコードを追加したら数分後に確認します。
$ nslookup example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: example.com
Address: 2606:4700:xxxx::xxxx:xxx
Name: example.com
Address: 2606:4700:xxxx::xxxx:xxx
Note: プロキシ(オン)にしている場合、返ってくるIPはConoHaのIPではなく CloudflareのIPアドレス になります。
Step 5:SSL証明書の設定
ブラウザでアクセスすると以下のエラーが出ることがあります。
Error 526: Invalid SSL certificate
The origin web server does not have a valid SSL certificate.
原因
Cloudflare が VPS に HTTPS で接続しようとしているが、VPS 側に SSL 証明書がない状態です。
SSL モードの違いを理解する
フレキシブル:
ブラウザ ←HTTPS→ Cloudflare ←HTTP→ VPS
フル (厳密):
ブラウザ ←HTTPS→ Cloudflare ←HTTPS→ VPS(SSL証明書あり)
Cloudflare の SSL/TLS → 概要 では以下のモードが選択できます。
| モード(Cloudflare UI) | VPS側の証明書 | セキュリティ |
|---|---|---|
| フレキシブル | 不要 | 中(CF↔VPS間は暗号化なし) |
| フル | 必要(自己署名でも可) | 高 |
| フル (厳密) | 必要(有効な証明書) | 最高 |
| 自動 SSL/TLS | - | Cloudflareが自動判定 |
今回の対応:フレキシブルに変更する
Cloudflare ダッシュボード → SSL/TLS → 概要 → カスタム SSL/TLS → フレキシブル に変更
VPS 側に証明書不要で即座に HTTPS が有効になります。
次回: Let's Encrypt で VPS に SSL 証明書を取得し、フル (厳密) に移行する手順を解説します。
Step 6:動作確認
ブラウザで https://example.com にアクセスして鍵マークが表示されれば完成です!
まとめ
- Cloudflare にドメイン登録しただけでは DNS は機能しない
- ネームサーバーが Cloudflare を向いているか確認する
- Cloudflare ダッシュボードで A レコードを追加する
- プロキシ(オン)にすると VPS の IP が隠れて Cloudflare の IP が返る
- SSL エラーが出たら Cloudflare を フレキシブル に変更することで即座に対応できる
- VPS への Let's Encrypt 導入と フル (厳密) への移行は次回解説
補足:AWS を使っている場合
AWS の場合は ACM(AWS Certificate Manager)で証明書を発行し、ALB や CloudFront にアタッチすることで同様の構成が実現できます。
なるほどね。証明書はこの役割だったのね!
ブラウザ ←HTTPS→ Cloudflare ←HTTPS→ ALB/CloudFront(ACM証明書)
Cloudflare の SSL モードは フル (厳密) にするのが一般的らしいです!