そろそろやらねばと思ってたらもうこんな季節だった
- 「Chrome 68」から全HTTPサイトに警告表示へ--7月リリース - CNET Japan
- Chrome 68 リリース日について - Google プロダクト フォーラム
- Chrome Platform Status
2018年7月にリリースされるChrome68からどんなページだろうがSSLじゃないと警告がでるようになるらしいというのはうろ覚えていたので、改めて具体的なデッドラインを参照したところ 2018/07/24 とのこと。ぼーっとしてたらもう日付が迫ってきていました...。日本時間を考慮するならforumの回答通り25日かなとは思ったものの、もはや尻に火がついた 状況でした。
状況と目標
- 状況
- かなり昔にカスタムドメイン設定のされたGitHub Pagesがすでに存在する
- まだEnforce HTTPS(強制SSLリダイレクト)の設定がOFF
- DNS設定はお名前.comでやっている
- 目標
- Enforce HTTPSの設定をONにする
ちなみに公式が一番詳しいです
今回はちょっと慣れないdigコマンド周りでもたもたしたのでQiitaに書いておこうと思いました。
本当は公式を読んでおけば全然大丈夫です。貼っておきます。
https://help.github.com/articles/using-a-custom-domain-with-github-pages/
あとそもそもカスタムドメインをどうやるかなどは、既存のQiita記事が詳しいです。
DNS設定を更新する
そもそもGitHub PagesのリポジトリのSettingsを見に行ったところ、設定したのが昔すぎたので、警告が表示されていました。すみません...。
The custom domain for your GitHub Pages site is pointed at an outdated IP address.
お名前.comでDNS設定の更新
お名前.comにてDNS設定を確認すると、次のAレコードの設定を発見。これは古いIPアドレスのようです。
192.30.252.153
192.30.252.154
公式helpにはALIAS
と ANAME
のレコード設定の方法も載っていますが、お名前.comではどちらも現時点で利用できなかったので、Aレコードを使った方法を採用しました。
一旦、古いIPアドレスは残しておいて、次の4つのIPアドレスを追加設定しました。
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
digコマンドで設定を確認
公式に正しく設定できたかdigで確認しましょう、という手順があったのですが、なぜか何も表示されず。
(example.comのところは実際は対象となるカスタムドメインを入力します)
$ dig +noall +answer example.com
(何もでない...)
ここで、 +noall
+answer
というオプションは 表示を全部消す
ANSWER SECTIONだけ表示する
を意味するので、一旦全部出してみます。
参考: digコマンドで覚えておきたい使い方11個 | 俺的備忘録 〜なんかいろいろ〜
$ dig example.com
; <<>> DiG 9.10.6 <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 28080
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; WARNING: EDNS query returned status FORMERR - retry with '+noedns'
;; QUESTION SECTION:
;example.com. IN A
;; Query time: 2 msec
;; SERVER: 192.168.100.1#53(192.168.100.1)
;; WHEN: Wed Jul 18 17:49:38 JST 2018
;; MSG SIZE rcvd: 29
;; WARNING: EDNS query returned status FORMERR - retry with '+noedns'
FORMERRが出ていて、 +noedns
をつけてリトライせよとのことのようです。
EDNSとはDNSの拡張プロトコルのことで、拡張プロトコル使ってみたけどエラーになったので無効化してリトライしなさい、という意味だと取りました。
参考: インターネット用語1分解説~EDNS0とは~ - JPNIC
$ dig example.com +noedns
; <<>> DiG 9.10.6 <<>> example.com +noedns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49238
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 1054 IN A 93.184.216.34
;; AUTHORITY SECTION:
example.com. 689 IN NS a.iana-servers.net.
example.com. 689 IN NS b.iana-servers.net.
;; ADDITIONAL SECTION:
a.iana-servers.net. 273 IN A 199.43.135.53
a.iana-servers.net. 273 IN AAAA 2001:500:8f::53
b.iana-servers.net. 146 IN A 199.43.133.53
b.iana-servers.net. 146 IN AAAA 2001:500:8d::53
;; Query time: 3 msec
;; SERVER: 192.168.100.1#53(192.168.100.1)
;; WHEN: Wed Jul 18 17:59:35 JST 2018
;; MSG SIZE rcvd: 181
今度はちゃんと内容を得ることができました。ANSWERのみ抜粋もできます。
$ dig +noall +answer +noedns example.com
example.com. 1002 IN A 93.184.216.34
というわけでこの設定で対象のドメインを見てみると、次のように旧/新どちらのIPもちゃんと確認できました。
(*表記はexample.comと置換)
$ dig example.com +noedns +noall +ans
; <<>> DiG 9.10.6 <<>> lo-upe.com +noedns +noall +ans
;; global options: +cmd
example.com. 240 IN A 185.199.108.153
example.com. 240 IN A 185.199.109.153
example.com. 240 IN A 185.199.110.153
example.com. 240 IN A 185.199.111.153
example.com. 240 IN A 192.30.252.153
example.com. 240 IN A 192.30.252.154
GitHubに出ている古いですよ!の警告文に対応
設定はできている様子であるものの、まだ outdated IP address
の警告文は表示されたままになった状態です。
If you're updating the IP address of an existing A record, first remove and then re-add your custom domain to the repository you’re using to publish your Pages site to trigger the process of enabling HTTPS.
公式helpに従って、Custom domain の項目のinput欄を空にしてSave -> 再度ドメインを入力してSave で警告文は消えました。
警告文がなくなったことを確認し、古いIPアドレス 192.30.252.153
と 192.30.252.154
には引退してもらいました
強制SSLリダイレクトできるようにする
警告とdigの件がなければ、実際のところ常時SSLのために必要なのはこのステップだけです。クリックひとつのために長い道のりだったな...。
Enforce HTTPS のチェックボックスをONにします。
ONにしてからしばらく後(10分後くらい)に確認してみると、http://~ でアクセスして https://~ へリダイレクトする挙動を観測することができました。
これで無事Chrome68を安心して待つことができそうです。めでたしめでたし。