目次

今回は、CloudFlareでひとまとめにしていたサイトを分散させることにしましたので、その対応をメモ。

はじめに

私は、各サイトを一つのドメインsyui.cfとNS(ネームサーバー)であるCloudFlareを使って集約していました。

ですがある時からMastodonのインスタンスでフォローや通知が来ない問題が発覚し、調査を進めた結果、SSL対応などに問題があることがわかりました。その他にも様々な原因も複数ありました。

例えば、CloudFlareでSSLをFullに設定し、MastodonのLOCAL_HTTPS=trueにして使用すると、Masotodon間では正常に使えるものの、他のOStatusなどのインスタンスと正常にやり取りできない問題がありました。

しかし、CloudFlareでSSLをFullにして使うと新たに別の問題も発生します。私のところでは例えば、Bloggerのhtttpsがうまく動作しなかったり、Cachet+OpenShiftでも動作しなかったりなどがありました。これをFlexibleにすればうまく動作するのですが、それだと今度はMastodonのインスタンスで問題が出てしまうのです。

そのため、一つのドメインに集約していた各サイトを他のドメインに分散する必要性に迫られることになりました。

ここで、新たなドメインをFreenomで取得し、各々が正常にアクセスできる構成を考えていこうというのが今回の課題です。

Freenom + Let’s Encrypt

FreenomはNS(ネームサーバー)としても動作し、主にHerokuから扱う場合、CloudFlareを使うと問題が発生するので、FreenomのDNSを使おうということです。

SSL証明書はLet’s Encryptで作成します。これをWebで行うためのhttps://sslnow.ml/というものがあります。しかし、CLIでやったほうが早いですね(コピー等がめんどくさすぎた)。

Mastodon + Heroku

MastodonとHerokuの組み合わせではroot権限がないし、そもそもSSH接続などのサーバーをリモートで操ることがができませんので、/etcにキーを置くことができずSSLを実現するにはHeroku SSLを使用しなければなりません。

これは、OpenShiftでも同じで有料オプションでないと権限が足りないので無理です。

/etc/letsencrypt/live/