WPA2 EAP-TLSでクライアントを設定する場合、ほとんどのクライアント(つまり、私の電話、私のコンピューター)は、クライアントの公開/秘密キーペア(明白な理由により)と認証局の証明書の両方を必要とします。
この2つ目のパラメーターは、用途がわからないものです。私の現在のセットアップは次のようになります:
.
└── root-ca
├── wifi-client-ca
│ └── client1-client-cert
└── wifi-server-cert
下に分岐する単一の自己署名ルートCA(root-ca
)があります。私のRADIUSサーバーはwifi-server-cert
をSSL証明書として使用し、wifi-client-ca
認証局を使用してクライアント証明書を検証します。
クライアントとサーバー側の証明書コンポーネントの両方で、どこにでも展開する際にチェーン証明書を使用しています。
Ubuntuマシンでclient1-client-cert
とwifi-client-ca
を使用して接続することに問題はありませんでしたが、これらの同じ証明書を使用してAndroid)に接続できませんでした。問題は、Androidが証明書チェーンを適切に登っていないという事実にあると考えています。
これは2つの類似した質問に分類されます。
root-ca
証明書(wifi-server-cert
に直接署名するもの)、またはwifi-client-ca
?EAP-TLSは実際にはSSL/TLSハンドシェイクをカプセル化し、サーバーとクライアントの両方が互いに証明書を送信します。これには次のプロパティがあります。
したがって、クライアント側では、次のように表記します。
wifi-client-ca
を知っている必要があります。root-ca
を知っている必要があります(これはセキュリティにとって重要です。これにより、クライアントが偽のアクセスポイントと通信するのを防ぎます)。一部のクライアントはwifi-server-cert
を直接信頼することを確信しているかもしれませんが、すべてのクライアントがそのような直接の信頼を許可しているわけではなく、その証明書の有効期限が切れると問題が発生します。
クライアントの証明書はサーバー用であり、クライアント自体ではありません。したがって、クライアントは自身の証明書を信頼する必要はありません。一般的な方法では、サーバー証明書のルートCAとクライアント証明書のルートCAは区別され、互いに無関係である場合があります。それでも、クライアントは、SSL/TLSが要求するように、サーバーに送信するために、独自の証明書のチェーンを知っているである必要があります(ただし、必ずしもtrustである必要はありません)。