【エムティーエルエス】
mTLS(相互TLS認証) とは?
最終更新:
💡 通信の両側を、証明書で認証する
TLSでサーバーだけでなくクライアントも証明書を使って認証する方式。秘密鍵の確認、認証と権限の違い、証明書管理とサービスメッシュの条件を解説します。
📌 このページのポイント
mTLSは、普通のHTTPSと何が違う?
証明書をコピーして持てば、認証できる?
確認するのは、サービスを使う人?
証明書が表す相手によるよ。サービス間では、プログラムやワークロードの識別に使うことがある。それだけでアプリの利用者を認証したり、すべての操作を許可したりするわけではない。誰を表す証明書かと、権限を分けて考えよう。
サービスメッシュなら、自動で全部mTLSになる?
運用では、何を管理する?
信頼する相手の範囲、証明書の名前と期限、秘密鍵、更新と失効などだよ。SPIFFEはワークロードのIDや認証用文書等の仕様で、SPIREはその実装の一つ。短い期限や自動更新だけで安全が完成するわけではなく、発行条件や権限の設計も必要なんだ。
もっと詳しく知りたい人へ
mTLSなら、パスワードやAPIトークンは全部不要?
何を認証するかによります。通信するサービスをmTLSで認証し、利用者の認証や操作の許可をアプリ側で別に行う構成もあります。認証済みの相手にも、必要な操作だけ許可する設計が必要です。
TLSは必ず証明書を使う?
ここでは証明書を使う一般的な方式を説明しています。TLSには事前共有鍵を使う方式等もあり、「普通のTLSは必ずサーバー証明書だけ」という定義にはしません。mTLSも具体的な方式と設定を確認します。
まとめ:ざっくりこれだけ覚えればOK!
「mTLS」って出てきたら「通信する両側を、証明書で確認するTLS」と思えばだいたいOK!
📖 おまけ:英語の意味
「mutual Transport Layer Security」 = 相互TLS認証
💬 mutualは相互の意味です。TLSでサーバー認証に加えてクライアント認証も行う使い方を表し、暗号化する通信の方向が変わるという意味ではありません。