Cloudflare(ネームサーバ)のドメインをロリポップサーバーで使えるようにする
参考:ロリポップでCloudflareのドメインを使う | kimidoribanana
詳しくない人(自分)のメモです
詳しくないので話が長い。上のサイトに簡潔に書いてある
今回サーバはロリポップですが他のレンタルサーバーでもこんな感じの操作のはず
小さい字は余談
目的
ネームサーバがCloudflareであるドメインを、ロリポップのレンタルサーバーに繋げたい
個人的な理由
example.comのサブドメインsub1を別の用途(VPSのMisskey自鯖)で既に使っている状態で、example.comでwebサイトを公開したい
ムームードメインで取得したドメインなのでムームーDNS/ロリポップDNSが使えるのだが、Cloudflareで使ってみたいので
やってること
Cloudflareで目的のドメインとロリポップサーバーの紐づけ(Aレコード設定)、プロキシしない
ロリポップサーバーに目的のドメインを登録
ロリポップサーバーで証明書を設定
必要あればCloudflareでプロキシ
前提
example.com(以下ルートドメイン)を取得している。
サイトコンテンツの公開場所としてロリポップのレンタルサーバーを契約している。
ルートドメインのネームサーバはCloudflareに設定済み。
sub1の運用のため。sub1を目的のロリポップサーバーではないサーバー(今回はXServerVPS。関係ない)で既に使っている。
ネームサーバの設定はルートドメインに対してまずやることになる。何もしなければサブドメインのネームサーバも勝手に同じネームサーバになる。
NSレコードでルートドメインとサブドメインのネームサーバを分けることもできるっぽいが、ややこそうなので、ルートとサブのネームサーバはCloudflareにそのまままとめておく。
レンタルサーバーに繋げたいドメイン→目的のドメイン
今回これ書いてるときの作業では「目的」がルートドメインだけど、サブドメインを増やしていくとするとルートドメインでこの作業やることの方が少ないということなので、目的がルートでもサブでも手順を行える書き方にした。
あと、今回の記録としてルートと書くとややこしくなったので。手順を素直に読めばわかるようにしたはず。ルートと書いてる場合、それはルートドメインである必要がある。
手順
Cloudflareの操作
Cloudflareで目的のドメインのDNSレコード(Aレコード)を設定。
ネームサーバは、閲覧者がブラウザでアクセスするURLのドメインが一体どこぞのサーバのIPアドレスのことであるのかを、ブラウザに教えてくれる。ドメイン=IPアドレスの関係をAレコードで指定する。
先に、自分のサーバーのIPアドレスを調べる:
Dig(DNS ルックアップ)などを使う。
ロリポップログイン→ユーザー設定→アカウント情報にある ロリポップのドメインのh ttp://の後の部分を入力。
参考:利用している『ロリポップ』WebサーバーのIPアドレスを確認する方法 | uzurea.net
DNSから、AレコードをロリポップサーバーのIPアドレスで、プロキシしないように設定。
グレーの雲マーク「DNSのみ」になっていればOK。
プロキシ中は、ロリポップサーバーでSSL証明書を設定できない。プロキシしたい場合は後でオンにすればOK。
ロリポップで証明書(Let's Encrypt)を設定する時、設定したいドメイン(IPアドレス)と証明者?が直接通信できる状態でないと証明書がつくれないらしい。プロキシ中はプロキシサーバがクッションになってしまいダメみたいなことらしい?とにかくプロキシ中はロリポップでSSLの設定できない。
目的のドメインがルートドメインの場合、www.example.comはCNAMEレコードでルートドメイン宛てに設定。
ページルールでwwwからルートにリダイレクトするようにしといた。
プロキシとSSL(独自理解)合ってるかわからない…
プロキシさせておくと、閲覧者・Cloudflareのプロキシサーバ・サーバ という通信経路になる。それぞれHTTPS通信できるようにする必要。
★Cloudflare・閲覧者 のHTTPS通信には、CloudflareのSSL証明書が必要。
CloudflareのSSL/TLS設定から「フル」(「フル(厳密)」とは違うけどここではどっちでもいい がフルでよさそう)にしておけばできてるはず。サイトのhttpヘッダで確認できる。
★サーバ・Cloudflare のHTTPS通信には、サーバの証明書が必要。
CloudflareのSSL/TLS設定が「フル(厳密)」なら、サーバに有効で公的な証明書がないと接続できない。
「フル」なら、サーバ側の証明書が有効でない(期限切れ)・公的でない(自己署名証明書)でも接続できる。証明書は必要。
「フレキシブル」にすると、Cloudflare・閲覧者間の通信はCloudflareの証明書によって暗号化されるが、Cloudflare・サーバ間の通信は暗号化されない。しないと安全ではないのでフル以上がいい。
プロキシさせずDNS設定だけなら、ネームサーバとして使われるだけ。閲覧者・サーバ という直接の通信経路になる。2者間のHTTPS通信には、サーバの証明書が必要。
つまり:サーバ側にSSL証明書をインストールする必要がある(後でやります)
サーバ側の操作
サーバ側でルートドメインを登録する(初めてのドメインの場合)。
現時点:閲覧者が【目的のサブドメイン】のURLにアクセスすると設定したIPアドレスのサーバに案内されるが、サーバは閲覧者にどのコンテンツを見せればいいかわからない。サーバ側でドメインとコンテンツを紐づける。レンタルサーバーなら多分簡単操作でできる。
他のレンタルサーバーの操作は知らんけどロリポップではサブドメインを登録するにはルートドメインの登録が必要。
ロリポップのサーバーの管理・設定→独自ドメイン設定から、ルートドメインをサーバに登録。
公開フォルダ名は既にあるフォルダに倣ってexample.comにしておいた。
登録に時間かかるかもらしい。
サーバー側で目的のドメインを登録する。
ロリポップのサブドメイン設定から同様に操作
サブを使うならサブドメインを登録。
ルートならwwwの登録も必要。
サーバーでSSLを設定。
ロリポップのセキュリティ→独自SSL証明書導入から有効化。
できない場合プロキシしてしまってないか確認(ヘルプに書いてなかった)。
これでできたはず
追加で、Cloudflareのプロキシ有効にしておいた
確認してみる
サイトが開くか確認。
httpがhttpsにリダイレクトされるか。
CloudflareのSSL/TLS→エッジ証明書で常にHTTPSを使用がオンになってればなるはず。
証明書を確認。
アドレスバーの錠マークなどから、証明書を見る。
プロキシしてる場合:Cloudflareの証明書。認証局はGoogle Trust Servicesになってた。
プロキシしてない場合:ロリポップの証明書。Let's Encryptになる。
やらなくていいけどやってみた確認
Cloudflareがプロキシしているか確認
開発者ツール開く。
Firefoxの場合
ネットワークのタブ(インスペクター、コンソール…と並んでる中)を開き、リロード
ファイル名が/のやつをクリック
ヘッダーの中にcf-rawというのがあれば、Cloudflareがプロキシしているらしい。
Chromeの場合
ネットワークのタブ(要素、コンソール…の中)、リロード
名前がサイトのドメインになっているやつをクリック
レスポンスヘッダーを見る。同様。
ネームサーバがどこになっているか確認
https://www.whois.com/ などで
おわり。
ちなみにこのサイト