あくまで備忘録なので、割と詳しい人向け。
前提
このサイト含め、2021年11月現在で自分のサイト運用には「さくらのレンタルサーバ」を利用している。ただし以前環境(さくらのVPSでKUSANAGI使用)との整合性、DDoS・スパム対策、およびサイト表示速度向上のためフロントエンド側にはCloudflareを噛ませた構成で運用。費用節約とDNSSECのため、ドメイン自体もCloudflareに移管させてしまっている感じ。
この運用でも無料SSLであるLet’s Encrypt使用が可能ではあるが、以下のような問題が発生する。
- 最初の設定時、CloudflareのDNSルーティングを解除することが必須
- www.ドメインも併せて設定する必要がある(CNAME設定を利用すれば問題ないが、少々面倒)
- さくらでドメイン利用する際の仕様かもしれない。
- 証明書発行(1時間程度)までDNSルーティング解除が必要。
- わりと更新失敗することがある(3か月に1回くらいの自動更新で)。更新失敗時にはDNSルーティングを解除し、再設定をする必要がある(これが一番めんどい)
一方、Cloudflareではクライアント証明書・オリジン証明書などの無料発行が可能であり、期限も最長15年先まで設定可能。サブドメイン運用も増えてきて更新失敗することが多くなってきたので、こちらを使いたい。
1.オリジン証明書は使えなさそう?
Cloudflareで無料発行できる証明書として「クライアント証明書」「オリジン証明書」があり、セキュリティ上の観点からできればサーバ設定で「Strict」が設定可能となるオリジン証明書を使いたいところ。
ただしさくらのレンタルサーバでオリジン証明書を設定しようとする場合、証明書インストールでエラーを吐く。
→どうやらさくら側で証明書チェックをおこなっているが、Cloudflare-Webサーバ間に特化した証明書らしく、正常な認識ができない模様。
一方「クライアント証明書」は問題なくインストールできたので、こちらを使用すればよさそう。
2.クライアント証明書のデメリット
一応「勝手証明書」になるらしく、Cloudflareのルーティングを通さない状態だとブラウザ側でエラーを吐く。
まあ「Cloudflare-Webサーバ間」の認証に使うだけで、ルーティング通せばCloudflareのフロントエンド側の証明書が適用されるので大きな問題はない。
3.クライアント証明書設定-インストールまでの簡単な流れ
- さくらレンタルサーバのドメイン(サブドメイン)登録ではネームサーバ設定を求められるが、これはさくらのサーバに向いていればCloudflareのネームサーバで基本的に問題ない感じ。ただ、最初はDNSルーティングを解除しておいた方が無難っぽい?
- Cloudflare側でDNSルーティングを解除していた場合は再設定しておく。
- さくらのコントロールパネルでドメイン設定したら、SSL設定→独自SSL設定で「秘密鍵の生成」「CSR要求の生成」までおこなう。
※未確認だがCloudflare側で生成し、あとから秘密鍵を登録しても大丈夫そう?ただしさくらの秘密鍵登録はファイルでおこなうので、テキストファイルで作る必要あり。 - Cloudflareの「SSL/TLS」→「クライアント証明書」→CSR要求を登録
※ここで有効期限も設定。登録するとすぐに画面が切り替わる。 - Cloudflareで発行した証明書をさくら側へインスト―ル
※テキストデータのコピペ。検証しているのか、ちょっと時間かかる。 - Cloudlfareの中間証明書(ルート証明書)を取得、中身をコピペ
※中間証明書はここから取得。「Cloudflare Origin RSA PEM」の方をダウンロードしてテキストエディタで開き、さくらへコピペする。中間証明書がないまま設定完了できてしまうが、正常にページ表示されないので注意。 - SSL関係はこれで設定完了するが、ドメイン設定で不備が発生している可能性があるので設定部分チェック。
- とくに「httpsに転送する」が外れているとページがさくらのデフォルトページになってしまう。
- せっかくなのでIPv6アドレスも使おう(もちろんCloudflare側でAAAAも設定しておく必要あり)
これでCloudflare側の証明書が使えるようになったはず。15年後まではしばらく大丈夫。更新時期が近づいたら、期限切れ前に証明書の再設定をしよう。
既存のLet’s Encryptから置き換える場合でもさくらでは既存の設定を設定完了まで維持できるので、アクセスできない時間は生まれにくい。ただしhttps転送が設定されていないと上記の通りさくらのデフォルトページになってしまうのでそこだけ注意。
なお、備忘録なので図解はないです。分かる人だけが設定にチャレンジしてください。