CDNのサムネイル

CDN

SSLの使えないサーバーでHTTPS配信をする裏技

現在のWebサイトでは必須であるSSL。SSLの使えないサーバーでHTTPS配信をする裏技を解説します。

編集ノート:SERVERSUSでは、パートナーリンクからコミッションを得ています。コミッションが記事の意見や、サービスの評価に影響を与えることはありません。

SSL証明書を持っているCDNを使えばHTTPS化が可能

エッジサーバーとして機能するCDNの中には、CloudflareやAWSのCloudFrontのようにSSL証明書を発行する機能を持ったものがあります。

ドメインレジストラから付与されている通常のDNSサーバーではなく、CloudflareやCloudFrontのようなCDNが提供しているDNS機能を使うことで、サーバーとの通信をHTTPS化させることができます。

CloudflareAWS CloudFront

ただし、このHTTPS化とは、

ユーザー <- (1) -> DNS <- (2) -> サーバー

1の経路をHTTPS化することであって、2の経路についてはSSL化されないケースもあります。

なお、Cloudflareは無料で使えますが、CloudFrontは通信量に対する従量課金になっていますのでご注意ください。

SSLは使えないけどCNAMEに対応しているサーバー

サーバー自体にSSLは入っていないけれども、CNAMEレコードでの転送に対応していて、かつSSLでの通信を許可している場合は、CDNを間に噛ませて通信をHTTPS化できます。

SSLは使えないけど、CNAMEに対応しているサービスは例えば下記のようなサービスです。

  • Google Cloud Storage
  • AWS S3
  • Heroku (無料プラン)

これらの場合、CloudflareなどのCDNを間に噛ませることでHTTPS化させることができます。

Cloud StorageとAWS S3については、同様の方法が紹介されています。

HTTPS によるサービスの提供

CloudFront を使用して Amazon S3 バケットに HTTPS リクエストを提供するには、どうすればよいですか?

Herokuに関しては、独自ドメインのHTTPS化は有料プランの機能となっていますが、DNSにCloudflareを使ったHTTPS化は筆者の試した限り、無料アカウントでも問題なく動きました。

SSLもCNAMEも使えない場合

この場合は、ドメインをAレコードで向けられるサービスに限ります。下記のような無料サーバーによくあるパターンです。

Cloudflareも無料から使えるサービスなので、スターサーバー フリーと組み合わせれば、無料でSSLに対応したサーバーを持つことができます。

また、旧来のサーバーでSSL化がすぐにできない場合や、Mixed Content(混合コンテンツ)対策として一時的にCDNを噛ませるのも一つの手です。

懸念点

この方式でサイトのHTTPS化ができますが、CDNとサーバー間の通信はHTTPになっているので、そこは注意が必要です。万が一、CDNからサーバーへの通信が漏洩したり、盗聴されるようなことがあれば、個人情報が流出する可能性があります。

この方式を使う場合は、個人情報などを扱わない静的サイトや静的コンテンツで使うのが良いでしょう。


SSLの使えないサーバーでHTTPS配信をする裏技をみてきました。

セキュリティ面を考えると、用途を限定した暫定的な使い方にはなりますが、それでも無料で使えるのは便利なので、ぜひ覚えておいてください。


価格は記載がある場合を除き、すべて税込みです。

関連キーワード

CDNの新着記事