みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

HTTPSのWebサイトの移行は難しい

HTTPSに対応したWebサイトのサーバーを変更するのが困難であるという話です.

そもそもWebサイトとは,ドメインのDNSサーバー(=ネームサーバー)が指し示す先に存在するWebサーバーにユーザーがアクセスすることでコンテンツを利用できるようにした一連の仕組みによって実現されています.

f:id:atsuhiro-me:20210302194038p:plain *1

通常はHTTPというプロトコルを使いますが,電子証明書を利用して暗号化したHTTPSというプロトコルに対応させることもできます.

HTTPSに対応すれば,ユーザーがアクセスするコンテンツは第三者が傍受できなくなるため,セキュリティやプライバシーを重要視するWebサイトでは導入されています.特にログインして利用するWebサイトではログイン時の認証情報が外部に漏れてはいけないので,HTTPSの対応は必須です.

証明書を発行するためには,DNSサーバーに参照先のサーバーを指定してから,認証局に証明書の発行を依頼すると,問題がなければ数時間程度で発行され使えるようになります.

DNSは世界中に分散したサーバーによって成り立っており,それぞれのサーバーでキャッシュされるため,DNSレコードを変更しても,全世界に反映されるまで最大で3日間かかると言われています.また,反映されるまでは変更前と後のどちらの値になるかは不明です.

つまり,HTTPSをWebサイトのサーバーをAからBに移行しようとしても,DNSの内容が反映されてから証明書を発行することになり,必ずダウンタイムが発生するわけです.

Webサイトのサーバーを移行しようとするとダウンタイムが発生するので,別のドメインに引っ越すのが簡単です.

a.example.comで稼働するサーバーAがあるとして,b.example.comで稼働するサーバーBを用意して証明書を発行し,a.example.comからb.example.comに301リダイレクトすればよいわけです.