GitHubのレポジトリにHTMLファイルを置いておくことで公開できる GitHub PagesというGitHubのサービスがありますが、 このサービスでカスタムドメインのHTTPS化がサポートされました。
GitHub Pages
GitHubの特定のレポジトリ(user.github.io
)を使ったりレポジトリ内の設定で
特定のブランチを指定するとそのレポジトリに置かれたファイルをhttp://user.github.ioという
URLの元に公開できます。
このブログもGitHub Pagesで公開しています。
カスタムドメイン(独自ドメイン)を指定することも可能です。
ただし、user.github.io
の方は2016年ころからHTTPS化のサポートが始まっていましたが
独自ドメインではサポートされていませんでした。
https:…としてもアクセスできますが証明書の設定が出来ないので 警告が出る状態になっていました。
なのでカスタムドメインを使う場合にはCloudflareとかCDNを使って HTTPS化をするのがよく使われる手法になっていました。
GitHub PagesでのカスタムドメインのHTTPS化サポート
そのGitHub PagesでついにカスタムドメインのHTTPS化のサポートが入りました。
Custom domains on GitHub Pages gain support for HTTPS The GitHub Blog
上でポストにあるように、このブログではCNAMEを使った独自ドメイン化をしていますが その場合には特に何もしなくてもHTTPSでの接続を行った場合に警告無しで 接続できるようになるようです。 この証明書まわりは Let’s Encrypt と提携してやっているとのこと。
このままだとhttp://…でも接続できる状態ですが、 設定でEnforce HTTPSをチェックすればhttp://…に接続しても https://…に飛ばされる様になります。
さらにはCDNを採用したということで より高速なアクセスができるようになったようです。
まとめ
最近ではHTTPS化が標準とも言われる様な位になってきたので 可能な限りWebサイトとかをHTTPS化したいところですが、 GitHub Pagesでもこれでカスタムドメインを入れても簡単にHTTPS化できる様になりました。
Cloudflareとかを使うと色々設定は出来ますが、 GitHub PagesでもCDNも入ってるので敢えてCloudflareとかを使うメリットもそれほどなくなったかもしれません。
このブログではせっかく設定したし変更し直すのも面倒なのでとりあえずは現行のまま GitHub Pages + Cloudflareで行こうと思いますが、 新しくGitHub Pagesを使おうと思う場合にはGitHub Pagesだけで簡単にHTTPS化が出来て良いと思います。
その他ブログでやりたいこと
Hugo化
HTTPS化はとりあえずはCloudflareで出来てるので良いとして、 他にもいくつかこのブログで変更したら良いかもな、と思ってることがあります。
一つはOctopressをやめて他のものに変更する、という方向。 現在Octopress 2.Xを使っていますがもう3年くらい前にアップデートは止まっていて、 3.0のプロジェクトも中途半端なママ2年前からアップデートがない状態です。
中で使っているパーサーのJekyll自体はもちろんアップデートがあるのでそちらの更新は使えるし、 プラグインとかやりたいことは大分自分独自で作っているものがあるので 外側のOctopress自体はそれほど重要でもないかな、 という感じもしますが、 最近Jekyllの3.8.0が出て、これにアップデートしたところ自作プラグインがエラーを出すようになってしまいました。
ちょっと見てみましたがかなりコアな部分の仕様変更があって一筋縄で対応できなかったので 今はJekyll 3.7.Xを使う様にして対応しています。
また、良く言われてたことですが、Octopress(というかJekyll)は大量にページがあると コンパイルするのに非常に時間がかかります。
このブログでも既に800ページ以上ありますが、これを普通にやったら1時間以上かかります。 なので割りと長くやってる人はそれに耐えられなくなって他に移っていく感じですが、 一応このブログではちょっと工夫をして数分程度でサイトすべてを作れる様になっています。
それでもローカルでちょちょっと作ってみるには大変な作業です。
と、色々あるので他のものにしたいと思っていますが、 一番の候補はHugoです。
gohugoio/hugo: The world’s fastest framework for building websites.
もともとOctopressもその時期に一番流行っていた感のあるものだったので使ってみた感じですが、 今静的サイトジェネレーターで一番キテる感じなのはHugoだと思います。
Octopress(Jekyll)はRuby製でGitHubが出てきたというのにも関連して流行っていた感があったと思いますが、 今はやはりGoでしょう、ということでHugoも注目を浴びてると思います。
Octopressを使うことで普段使ってなかったRubyもある程度は使える様になったし、 Hugoを使いながらGoを勉強できるのも良いな、という点も。
ただ独自プラグインとか色々と手を入れてるので、 用意されている変換コードとかだと問題が多発してしまうので 変換ルールもある程度自分で作らないといけない、ということでまだ出来てません。
そのうちやりたい。
Netlify
もう一つはGitHub Pagesを使い続けて良いのか、ということ。 便利なんですが、もともとそれほど大きなトラフィックを想定して提供されているものではないため、 またフリーで提供されているものなのである程度の制限があります。
GitHub Pages sites are subject to the following usage limits:
GitHub Pages source repositories have a recommended limit of 1GB .
Published GitHub Pages sites may be no larger than 1 GB.GitHub Pages sites have a soft bandwidth limit of 100GB per month.
GitHub Pages sites have a soft limit of 10 builds per hour.
以前はこれに加えて100GB per monthのところが 100GB or 100,000 requests per month みたいになっていて、 よく言われていたのがGitHub Pagesは10万PVまで、ということでしたが 今はその記述がなくなって単に帯域量だけの制限になっています。
この制限がかかってもすぐにサイトが見れなくなるわけではなくて まずはサポートから連絡が来る、とあるので超えるか超えないか、 という場合にはすぐに心配する必要はないと思います。
ですがコンスタントに超え始めたら考えないといけません。
また、レポジトリの制限として1GB程度ということなのですが、
このサイトはまだ700MB位ですが最近大きな画像ファイル(80MB位)を
送ろうとしたら大きすぎて駄目、と言われました。
(git push
時にエラーになる。)
同じファイルを他のレポジトリに送ったところ問題なく送れました。
一応GitHub的には100MBを目安に一つのファイルのサイズの制限があります。
ですが一つのレポジトリである程度使っていくと 一つのファイルサイズの制限もきつくなっていくようです。
まあ、80MBのファイルはちょっとどうにかしなきゃいけないレベルではあるのですが。
レポジトリの制限もあれですが、それ以上に帯域制限があるので 他に移りたい、という人が結構居るようです。
そんな中で最近、Netlifyというサービスがちょっと流行ってる模様で、 GitHub Pagesから移った、という人が結構見られました。
Netlify: All-in-one platform for automating modern web projects.
Netlifyは静的サイトを簡単に公開できるサービスで、 GitHubと連携してCIをNetlify側で動かしてサイトをデプロイしたりすることが出来ます。
ただ、このCIは15分の制限があるらしく、Octopressで長くかかる場合にはちょっと厳しいかも。 (このサイトなら多分大丈夫。)
また、外からファイルを直接送ろうとした場合、APIを使って送ったりすると200リクエスト/分の制限があるので Zipとかでまとめて送ったりすることを考えないといけないとのこと。
そんなこんなでも移って人が居るのは帯域制限がGitHub Pagesよりも大きいからということですが、 制限としては100GB per monthです。
ただ、GitHub Pagesと量的には同じで、GitHub Pages側に 100,000 requests per monthが無くなったので実は現在は実質的に一緒なのかもしれません。
そう考えるとあまり意味ないかも。
あと、いずれにしろ、現在はCloudflareを使ってCDNを通して配信しているので そもそもこの辺の計算があまり意味をなしてません。
なのでNetlifyはちょっと気になったのですが Cloudflareを使ってる以上あまり帯域自体は気にしなくても良いところだと思います。
カスタムドメインのHTTPS化がサポートされたのでGitHub Pagesだけで配信しようと思うと 多少気になるところですが、制限的にNetlifyの方が優れている、ということも今は無いようです。
ということでこちらはとりあえず変更する意味は無いかな、といった感じです。