ドメインを買い、VPS もある。それなのにブラウザは「このサイトにアクセスできません」のまま。足りないのはほぼ必ず、2 つの DNS レコードと、正しいアドレスで本当に応答する Web サーバーです。レジストラから、きちんと動く HTTPS の鍵マークまでの道のりを一通り説明します。
始める前に:そのプランは Web のトラフィックを受けられますか?
訪問者はサーバーの 80 番と 443 番ポートに接続します。そのためには専用のパブリック IP を持つプランが必要です。NAT プランが転送するのは個別の SSH ポートだけなので、ドメインでサイトを公開できません。違いは専用 IP と NAT の比較記事で説明しています。小さなサイトなら Nano-IP で問題なく動きます。
1. サーバーのアドレスを確認する
IPv4 と IPv6 のアドレスは、ダッシュボードのサーバーページに表示されています。例ではドキュメント用のアドレスを使います。
- IPv4:
203.0.113.10 - IPv6:
2001:db8::10
2. DNS レコードを作る
ドメインの DNS を管理している場所(たいていはレジストラ)にログインし、次を追加します。
| タイプ | 名前 | 値 | TTL |
|---|---|---|---|
| A | @ | 203.0.113.10 | 300 |
| AAAA | @ | 2001:db8::10 | 300 |
| CNAME | www | example.com. | 300 |
@ はルートドメインを表します。300 秒のような短い TTL にしておけば、間違えても安く直せます。すべて動いたら 3600 に上げて構いません。
まだ IPv6 を使わないなら、AAAA レコードはいったん飛ばしてください。理由はステップ 5 の注意書きのとおりです。
3. DNS が応答するか確かめる
レジストラの「保存しました」を鵜呑みにせず、DNS に直接聞きます。
dig +short example.com A
dig +short example.com AAAA
dig +short www.example.com
dig +short example.com A @1.1.1.1
最後の行は公開リゾルバーに問い合わせるので、訪問者が見る結果に近くなります。自分の IP が返ってくれば DNS は完了です。
4. サーバーに応答させる
nginx をインストールしてポートを開けます。
apt update && apt install -y nginx
ufw allow 80/tcp
ufw allow 443/tcp
http://example.com を開くと、nginx のウェルカムページが表示されるはずです。次に無料の証明書で HTTPS を追加します。
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot は nginx の設定を書き換え、HTTPS へのリダイレクトを設定し、証明書を自動で更新します。nginx の背後に本物のアプリを置くなら、HTTPS 付きリバースプロキシのガイドに従ってください。
5. IPv6 の落とし穴
これに引っかかる人はとても多いです。AAAA レコードを追加したのに、nginx は IPv4 でしか待ち受けていない。IPv6 の訪問者(多くのモバイル回線)はまず IPv6 アドレスを試して失敗します。server ブロックに両方の行があるか確認してください。
listen 80;
listen [::]:80;
Ubuntu の nginx の既定設定には最初から [::] が入っていますが、自作の設定ではよく抜け落ちます。IPv6 が使えるマシンからテストしましょう。
curl -6 -I https://example.com
よくあるトラブル
- 古い IP がまだ出る: ローカルのリゾルバーがキャッシュしています。TTL が切れるのを待つか、上のように
@1.1.1.1に問い合わせてください。 - Certbot がタイムアウトで失敗する: 80 番ポートが塞がれているか、DNS がまだこちらを向いていません。
ufw statusとdigをもう一度確認します。 - www なしなら動くのに www 付きだと失敗する: 証明書か server ブロックに
wwwが含まれていません。両方の名前で certbot を再実行してください。
逆引き DNS について
A と AAAA は名前から IP への対応です。逆引き DNS(PTR)はその逆で、レジストラではなくダッシュボードで設定します。必要になるのはメールや、それをチェックするサービスがある場合だけです。PTR のガイドで扱っています。
初めてサイトを公開するなら、Web サイトの活用例ページがプラン選びの参考になり、ネットワークのドキュメントには各プランに割り当てられるアドレスがまとまっています。
コメント
まだコメントはありません。最初になりましょう。