*
問題は、広すぎるワイルドカード (または*.com
)を使用しようとしていることです。
仕様 ( RFC 6125およびRFC 2818 セクション 3.1 ) では、「左端」のラベルについて説明しています。これは、複数のラベルが必要であることを意味します。
1. The client SHOULD NOT attempt to match a presented identifier in
which the wildcard character comprises a label other than the
left-most label (e.g., do not match bar.*.example.net).
2. If the wildcard character is the only character of the left-most
label in the presented identifier, the client SHOULD NOT compare
against anything but the left-most label of the reference
identifier (e.g., *.example.com would match foo.example.com but
not bar.foo.example.com or example.com).
最低限必要なラベルの数を指定する仕様があるかどうかはわかりませんが、Chromium コードは、少なくとも 2 つのドットが必要であることを示しています。
広すぎるワイルドカードに対する基本的な保護として、少なくとも 3 つのコンポーネント (つまり 2 つのドット) が必要でした。
これは確かに、 のような広すぎるケースを防ぐため*.com
です。これは不便に思えるかもしれませんが、CA は時々間違いを犯します。発行された潜在的な不正な証明書が*.com
機能するのを防ぐ手段を持つことは、必ずしも悪いことではありません。私の記憶が正しければ、一部の実装はこれよりも先に進み、第 2 レベルのドメインには広すぎるリスト ドメインを持っています (例: .co.uk
)。
2 番目の例については、「CN:bar.com、SAN: DNS:my.foo.bar.com、DNS:yours.foo.bar.com」です。この証明書は および に対して有効である必要がありますが、 では有効ではmy.foo.bar.com
ありyours.foo.bar.com
ませんbar.com
。CN は、SAN が存在しない場合のフォールバック ソリューションにすぎません。SAN がある場合は、CN を無視する必要があります (一部の実装ではより寛容になります)。