証明書による認証方法は、技術的には公開鍵による認証方法の一部です。秘密鍵によって作成される署名、および証明書による認証中に行われる X.509 証明書に記述された公開鍵を使用した署名の検証は、従来の公開鍵および証明書による認証と同様に実行されます。大きく異なるのは、特定のユーザが特定の公開鍵または証明書によってログインを許可されるかどうかを決定するときです。従来の公開鍵による認証では、すべてのサーバがすべてのユーザの公開鍵を持っている必要がありました。一方、証明書による認証では、ユーザの公開鍵をサーバに配布する必要はありません。CA (認証局) の公開鍵 (自署証明書) を配布するだけで十分です。
証明書による認証の概要は以下の通りです。
クライアントはユーザの公開鍵が記述されている証明書をサーバに送信します。このパケットは、セッションに対して一意のデータも含んでおり、ユーザの秘密鍵によって署名されています。
サーバは CA 証明書、および必要に応じて外部リソースを使用して、ユーザの証明書が有効であることを確認します。
サーバは、最初のパケットの署名を確認して、ユーザが有効な秘密鍵を持っているかどうかを検証します。
サーバはユーザ証明書をサーバの設定ファイルのルールと照合し、ログインが許可されるかどうかを決定します。