PHPerKaigi 2019に255 octetのドメインの話で登壇した #phperkaigi

PHPerKaigiに登壇&コアスタッフとして参加してきました!こっちの記事では登壇にフォーカスした内容をば。

PHPerKaigiは1年ぶり2度めの参加になります。
rela1470.hatenablog.jp 昨年はお金で買ったランチセッションの枠で登壇しましたが、今年は15分枠が新たに出来て応募しやすく、CfPが通ったので純粋なスピーカーとして登壇できました。僕みたいなネタ枠は30分は辛いですからね!笑

参加者として

ほぼすべてのイベントに参加させていただきました。

f:id:rela1470:20190329201153j:plain
PHPre Partyでテキーラを飲む長谷川委員長

特に2日目のPHPer茶会が個人的によく刺さりました。
初対面ぼっち対策を(ほぼ)ノンアルで、ここまで上手く回せたのはすごいと思いました。
テーマIRTやボードゲームなどなど。よく考えられているなと。

f:id:rela1470:20190330185011j:plain
普段じつはPHP関係ないお仕事をしているIRTテーブル

f:id:rela1470:20190329171505j:plain
PRECSさんのnu boardには痺れました...

トークはコアスタッフ業で残念ながらきちんと聴講出来なかったのですが、皆様の反響を見る限り、とても素晴らしい発表ばかりだったのではと思います!

登壇者として

f:id:rela1470:20190331102406j:plain
3日目朝イチ!
PHPの話ではなくドメインの話をしてきました。

もともとは昨年の主催していた勉強会で発表した内容でしたが、今回SSL化に成功するまでを大幅に加筆して発表しました。
fortee.jp

当日は朝イチ、しかもPHPに全く関係ないお話ということで、正直そこまで沢山の方にはご参加いただけなかった*1のですが、 動画(後日公開されるであろう)(自分が編集している)を見ていただければ分かる通り、大盛り上がりでした! *2
わざわざ足を運んでくださった皆様、ありがとうございました!

f:id:rela1470:20190331103030j:plain
謎のポーズ。あとで録画を確認しましたが、ここまで動き回るスピーカーは僕だけでした。恥ずかしい。

ということで以下資料です。

speakerdeck.com

そして以下実際のドメインです。 https://workworkworkworkworkwork.workworkworkworkworkworkworkworkworkwork.workworkworkworkworkworkworkworkworkworkworkworkworkworkwork.workworkworkworkworkworkworkworkworkworkworkworkworkworkwork.workworkworkworkworkworkworkworkworkworkworkworkworkworkwork.work/

今回調べてわかったこと

ドメインは253文字(255 octet)まで

仕様は255文字ではなく255 octetなので、文字に変換すると253文字までとなります。

メールアドレスは254文字(256 octet)まで

アットマークを含む仕様なので、253文字のドメイン+アットマークだと実質使えないです。

64文字以上のドメインはCNをどうにかしない限りLet’s Encrypt以外の証明書が発行できない

Common Nameが64文字までという縛りがあり、csr作成時にドメイン名=Common Nameの環境(通常はそうなっている)だと発行できません。

FirebaseやNetlifyなども64文字を超えるドメインは不都合がある

Firebaseは64文字以下しか登録できません。NetlifyはSSL化なしだと253文字までいけますが、SSL化は変わらず64文字までです。

64文字以上のドメインLet’s Encryptワイルドカード証明書が発行できない

230文字以上のドメインは通常の方法だとLet’s Encrypt証明書が発行できない

Let’s Encryptワイルドカード証明書と通常の証明書で制限が異なります。ワイルドカード証明書は一般に販売されている証明書と一緒で64文字。通常の証明書はLet's Encryptが優秀で230文字。

253文字のドメインは最上位ラベルを除いて230文字以下にし、Let’s Encrypt SAN+ワイルドカード証明書を活用すると証明書が発行できる!!!!!!!!!!

ということでこれが僕の見つけた唯一の解決法でした。他に良い方法が見つかった方は、ぜひご連絡いただきたく!!!!!!!!

なぜこんなことをしたの?

ドメインが1円だったからです。GMOインターネットさま本当にありがとうございます!お名前ドットコムの1円セールがなければ、このような知見も登壇も叶いませんでした!

謝辞

今回の資料をまとめるにあたって、Let's Encryptの開発者のみなさん、コミュニティの皆さんに大変お世話になりました。 本当にありがとうございます!
community.letsencrypt.org

cert-botの内部仕様に関しては_azさんに助言いただきました。_azさんのLet’s Debug非常に便利なのでおすすめです!

また、ConferenceではなくKaigiという場を作り上げてくださった長谷川さん、その他スタッフの皆様、本当にありがとうございます!このような変なトークも受け入れてくれるkaigiは他にはない雰囲気で、本当に貴重な場だなと。ブログを書いたので来年も開催してくださると思います。楽しみにしています!

あと完全に余談ですが、現在転職活動中です!良いお話あればぜひ!!!!

ということでコアスタッフ編に続く...

Photo by PHPerKaigi (CC-BY-NC 4.0)

*1:裏がてきめんさんのガッツリPHPトークということもあり

*2:質疑応答で沢山質問を頂けたので、Ask The Speakerが寂しかったのは内緒。