Let’s EncryptでFQDNがダメ!といわれた話

KUSANAGIでは、WordPressを使用するためのプロファイルを作成する際に、メールアドレスを入力するだけで簡単にLet’s Encryptの導入ができます。

Let’s Encrypt は、認証局(CA)として「SSL/TLSサーバ証明書」を無料で発行するとともに、証明書の発行・インストール・更新のプロセスを自動化することにより、TLS や HTTPS(TLSプロトコルによって提供されるセキュアな接続の上でのHTTP通信)を普及させることを目的としているプロジェクトです。

Let’s Encrypt 総合ポータル

それなら導入しないわけにはいかない!

導入したらエラーが…

kusanagi provisionというコマンドで、サクサクとプロビジョニングを行っていきます。
※実際は下記で取り上げているもの以外にも入力するものがありますが、ここでははしょっておりますので、詳しくはこちらで確認してください。

Enter hostname(fqdn) for your website. ex) kusanagi.tokyo

ここで使用するサイトのFQDNを入力します。
※これ以降はlets_test.example.comを入力したとして書いていきます。

Let’s Encryptは、入力したドメイン名を正引きしたIPアドレスに接続することで、ドメイン所有者であることの認証を行うため、DNS設定などを予め終わらせておく必要があります。
lets_test.example.comにアクセスし、Welcome to nginx!が表示されていることを確認して次に進みました。

In order to use Let's Encrypt services, you must agree to Let's Encrypt's Term of Services. If you agree to this TOS, type your email address; if not, hit enter twice. TOS of Let's Encrypt : https://letsencrypt.org/repository/

次に表示されるこの部分が、「Let’s Encrypt使用しますか?」の部分。
メールアドレスを入力します。

その後も特に問題なく進みました…が、
プロビジョニングの一番最後、Let’s Encryptの設定を行った際に表示されるはずの、長ったらしいIMPORTANT NOTESが表示されず、代わりに表示されたのが…

Requested domain lets_test.example.com is not a FQDN

えええ…うそ… さっき Welcome to nginx! なってたよ…?
プロビジョニング後、サイトにアクセスしてみると、WordPressのインストール画面は表示されているものの自己証明になっていて、Let’s Encryptは有効化されていませんでした。

原因はアンダースコア

これについて、みからぼ。のAkira Tsumuraさんが、丁寧に解説してくださいました。

Let’s Encryptでは、FQDNに以下のような制限があります。
・TLD : 「a-z 2~63文字」
・Domain Name : 「a-z 0-9 ハイフン 1~63文字 + ドット」の繰り返し
 ※最初と最後にハイフンは使えない。
・サブドメインの階層・FQDN全体の長さの制限なし

Let’s Encryptが期待しているFQDNとは : みからぼ。

アンダースコアがダメだったそう…

これはLet’s Encryptが独自で定めているわけではなく、インターネット関連技術の標準化団体であるIETFによって発行された、RFCにきちんと記載されていました。
許されていないFQDNだった、というオチでございます。表示されればいいってものじゃないんですね。反省。

RFC、これを機にきちんと読んでみます。Akira Tsumuraさん、ありがとうございました。

余談

「盛り塩の代わりにのり塩」がちょっと話題になり、CTOがのり塩ポテチを買ってきてくれたのですが、母の酒のつまみとなって消えてしまいました。盛れませんでした。すみません。
のり塩といえばやっぱり湖池屋ですよね。