SSLクライアント認証とサーバー認証の違いとは?役割と使い分けを解説

目次

はじめに

「SSLクライアント認証とサーバー認証は何が違うの?」
「WebサイトにSSL証明書を設定するとき、どちらを使えばいいの?」と迷っていませんか。

社内システムや会員向けサイトのセキュリティを設定しようとして、サーバー証明書やクライアント証明書という言葉が出てくると、誰が誰を確認する仕組みなのか分かりにくいですよね。

この記事では、それぞれの認証で確認する対象や証明書の役割、両者の違い、利用する場面をわかりやすく解説します。

SSLのクライアント認証とサーバー認証の違いは?

SSL/TLSでは、クライアント認証とサーバー認証で「誰を確認するのか」が異なります。

どちらも証明書を使った認証ですが、証明書を提示する側と確認する側が異なるため、まず認証対象の違いから整理していきます。

クライアント認証とサーバー認証は何を確認するかが違う

クライアント認証とサーバー認証では、証明書を使って確認する相手が異なります。

クライアント認証はサーバー側が接続してきたユーザーや端末を確認し、サーバー認証はブラウザなどが接続先のサーバーを確認します。

クライアント認証はユーザーや端末を認証する

クライアント認証では、Webサイトへ接続するユーザーや端末が正しい相手かをサーバー側で確認します。

接続時に提示されたクライアント証明書を検証し、認証条件を満たしていれば接続を許可します。

サーバー認証は接続先のサーバーを認証する

サーバー認証では、ブラウザなどが接続先のWebサーバーを確認します。

HTTPS接続時に提示されたサーバー証明書の有効期限や発行元、ホスト名などを検証し、問題がある場合はブラウザに警告が表示されます。

【比較表】クライアント認証とサーバー認証の3つの違い

クライアント認証とサーバー認証の違いは、「認証する対象」「証明書を提示する側」「認証する目的」の3つに分けると整理しやすくなります。

比較項目クライアント認証サーバー認証
認証する対象接続するユーザーや端末接続先のサーバー
証明書を提示する側クライアント側サーバー側
認証する目的接続を許可する相手か確認する正しい接続先か確認する

大きな違いは、「誰を確認するための認証なのか」という点です。

クライアント認証ではサーバー側が接続してきた相手を確認し、サーバー認証ではクライアント側が接続先のサーバーを確認します。

SSLのクライアント認証とサーバー認証はどう使い分ける?

SSL/TLSのクライアント認証とサーバー認証は、通信時にどちらの正当性を確認したいかによって使い分けます。

ここでは、確認したい対象ごとに適した認証方法を説明します。

Webサイトの正当性を確認するならサーバー認証

Webサイトが正しい接続先であることを確認したい場合は、サーバー認証を利用します。

HTTPS接続では、Webサーバーが提示した証明書をブラウザ側で検証し、問題がなければ通信を続けます。

ユーザーや端末を確認するならクライアント認証

Webサイトへアクセスするユーザーや端末を確認したい場合は、クライアント認証を利用します。

クライアント側が提示した証明書をサーバー側で検証し、認証条件を満たしていれば接続を許可します。

双方を確認するならクライアント認証とサーバー認証を併用する

サーバーとクライアントの双方を確認したい場合は、2つの認証を併用します。

サーバー認証で接続先を確認し、クライアント認証で接続してきたユーザーや端末を確認することで、双方を認証したうえで通信できます。

サーバーとクライアントを相互に認証する仕組みを詳しく知りたい方は、mTLSの仕組みも確認してみてください。
▶mTLS(相互TLS認証)とは?仕組みや通常のTLSとの違いをわかりやすく解説

まとめ

SSL/TLSのクライアント認証とサーバー認証は、証明書を使って確認する対象が異なります。

サーバー認証ではブラウザなどのクライアント側が接続先のWebサーバーを確認し、クライアント認証ではサーバー側が接続してきたユーザーや端末を確認します。

Webサイトの正当性を確認するならサーバー認証、アクセスするユーザーや端末を確認するならクライアント認証を利用します。

双方の正当性を確認する必要がある場合は2つを併用し、サーバー側とクライアント側の両方を認証したうえで通信する構成にします。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次