ドキュメント
クライアントでの厳格な検証
既定では、クライアントはすべての接続を暗号化しますが、接続先が誰なのかは検証しません。これはブラウザが自己署名証明書を受け入れるのと同じ「初回使用時に信頼」の姿勢です。厳格な検証を有効にするとこれが変わります。クライアントは、指定されたルート CA でサーバーの証明書を検証し、チェーン・有効期限・SAN のすべてが合格しない限り接続を拒否します。これにより接続への中間者攻撃は事実上不可能になります。代償は手動作業が 1 ステップ増えること、つまりクライアントにサーバーのルート CA を渡すことです。
設定場所
厳格な検証は、クライアントのサーバー編集パネルでサーバーごとに設定します。アドレスやシークレットキーの隣にあります。
ルート CA 証明書(PEM)— サーバーのルート CA 公開証明書を入力する複数行フィールド。厳格な CA 検証(チェーン・有効期限・SAN)— CA を入力した後でのみ選択できます。
ルート CA をクライアントへ渡す
2 つの方法があり、取得元は同じです(サーバーの 証明書と TLS ページ。「ドメインと SAN の管理」ページ参照)。
- コピー&ペースト — Web UI で
ルート CA をコピーを押し、PEM をクライアントのルート CA 証明書(PEM)フィールドに貼り付けます。 - 共有文字列のインポート — クライアントが生成する共有文字列には、アドレスやキーとともにルート CA が埋め込まれています。その共有をインポートすると CA フィールドが自動的に事前入力されるため、受け手は厳格な検証のチェックボックスにチェックを入れるだけです。
CA はすべてのクライアントで同じであり、証明書の更新でも変わりません。サーバーごとに一度設定すれば十分です。
厳格モードの検証内容
チェックボックスを有効にすると、そのサーバーへのすべての接続は、次の条件を満たす証明書を提示しなければなりません。
- 設定されたルート CA にチェーンでつながること。他の任何の CA が署名した証明書は拒否されます。
- 有効期間内であること。期限切れやまだ有効でない証明書は拒否されます。
- 接続先のアドレスに一致する SAN を持つこと。別の名前向けに発行された証明書は拒否されます。
いずれかの検証に失敗すると、接続はどの検証に失敗したかを示すエラーとともに拒否されます。チェックボックスを外した場合(または CA がない場合)、接続は暗号化されたままですが、これらの検証はスキップされます。
フィンガープリントの確認
CA を信頼する前に、本物を手に入れたことを確認してください。証明書と TLS ページにはルート CA の SHA-256 フィンガープリントが表示されています。これを、これから貼り付ける PEM(または受け取った共有に埋め込まれた PEM)と照合してください。一致しない場合は厳格な検証を有効にしないでください。信頼できる経路で CA を再度入手してください。
よくある失敗
SAN 不一致— 接続に使っている名前や IP が証明書に含まれていません。サーバー側で追加し(「ドメインと SAN の管理」ページ参照)、再発行してください。証明書の期限切れまたは未有効— サーバーの時計がずれているか、リーフ証明書の更新に失敗しています。Web UI で証明書の状態を確認してください。設定された CA による署名ではない— フィールドの CA が別のサーバーのものか、接続が傍受されています。先にフィンガープリントを照合してください。