Blogをgithub pagesからNetlifyに移行しました

  • このエントリーをはてなブックマークに追加

もともとBlogをGithub Pagesでやっていましたが、HTTPS化するのにCloudFlare使うのもなー、証明書の更新も面倒だなと思って躊躇していました。

証明書の更新だったらAWSのACM使えば無料だし、Acceptさえすれば自動で更新されていくし便利じゃん!と思い、S3とCloudFrontの設定をしましたが、サブディレクトリのindex.htmlが上手く解決できませんでした。
最初はS3をPrivate化して、CloudFrontからのアクセスに成功。しかし、index.htmlが解決できないので、S3をpublicにして必要な設定を入れてみても、どうも上手くいかない。

もやもやしていたところ、Netlifyの存在を教えて貰いました。

なにこれ、簡単すぎる!!

15分もあれば、諸々設定終わります。証明書もLet’s Encryptとボタン1つ押すだけで、自動で証明書が作られて自動更新されていきます。

とはいえ、いくつかハマったところがあったのでメモを残しておきます。

Let’s Encryptの設定でハマった

最初はcustom domainを適当な値にして確認していて(例:test1.orz.at)、それで証明書の設定を入れた後に、blog.orz.atに名前を変更したら、証明書の更新はどこからも変更できませんでした。なので、blog.orz.atでアクセスしてもtest1.orz.atの証明書が使われてしまうことに。

証明書を消すことも出来ないので、サイトそのものの定義を削除して、作り直しました。

(DNSの設定はNetlify管轄にしないで、CNAME指定でやってました)

Redirectの設定

{site}.netlify.comでアクセスしたらblog.orz.atに飛ばしたい。
Origin的なサイトが見えちゃうと、コピーサイトに見えそうだし。そもそも複数のドメインからアクセスできちゃうの嫌。

ここを見ると、redirectの設定ができます。テストはここで確認できます。
というわけで、以下の設定を追加。

http://tamtam180-blog.netlify.com/* https://blog.orz.at/:splat 301!
https://tamtam180-blog.netlify.com/* https://blog.orz.at/:splat 301!

そして、今もハマってる最中。
Hexoの設定でgenerateした時に、_redirectsが対象外になっていました。設定ファイルに次を追加。参考

include:
- _redirects

できた

custom domainへ移動するようになりました。

$ curl -I "https://tamtam180-blog.netlify.com/"
HTTP/1.1 301 Moved Permanently
Cache-Control: public, max-age=0, must-revalidate
Content-Length: 35
Content-Type: text/plain; charset=utf-8
Date: Sun, 29 Oct 2017 15:32:39 GMT
Location: https://blog.orz.at/
Age: 1
Connection: keep-alive
Server: Netlify