コンテンツへスキップ
uencoder

相互 TLS(mTLS)認証を実装する

mTLS はクライアントとサーバーの両方に証明書の提示を求め、パスワードなしで強力な双方向認証を実現します。サービス間通信やゼロトラストアーキテクチャで一般的です。

  1. 1

    標準 TLS では、サーバーのみが identity を証明します。mTLS では、クライアントも証明書を提示し、サーバーが検証します。これにより、サービス間通信からパスワードが排除されます。サーバーはクライアント証明書を「要求して検証する」よう設定します。

  2. 2
    RSA ツール →

    クライアント鍵ペアを生成し、CSR を作成します。内部 CA が署名してクライアント証明書を返します。クライアントは証明書と秘密鍵の両方を保存します。

  3. 3
    ハッシュ計算ツール →

    クライアント証明書のチェーンを内部 CA のルートに対して検証します。サーバーはこの CA を信頼する必要があります(クライアント検証用の信頼された CA として設定)。

  4. 4

    サーバーをクライアント証明書必須に設定します(nginx:ssl_verify_client on; ssl_client_certificate ca.crt)。証明書の DN を認可ロールにマッピングします。ゼロトラストには、内部 CA または SPIFFE/SPIRE による自動ローテーションで、短命な証明書(年単位でなく時間単位)を使ってください。

よくある質問

mTLS はいつ使うべきですか?
サービス間通信(マイクロサービス、API)、ゼロトラストネットワーク、高セキュリティのクライアント接続(金融 API、IoT デバイス管理)に使います。ユーザー認証をアプリケーション層で処理するパブリック Web アプリには過剰です。
クライアント証明書はどうローテーションしますか?
自動発行付きの短命な証明書(例:24 時間)を使います。クライアントは、現在有効な証明書で認証しながら、古い証明書の期限切れ前に新しい証明書を要求します。cert-manager(Kubernetes)や SPIFFE などのツールがこれを自動化します。

このタスクを解決するワークフロー

コンテンツのハッシュと Base64 エンコード
入力のハッシュを計算し、コンパクトな転送のためにハッシュダイジェストを Base64 としてエンコードする。
パイプライン
テキストのハッシュと整合性検証
入力テキストのハッシュを計算し、期待されるハッシュと比較して整合性を検証する。
パイプライン
テキストのハッシュと CRC32 チェックサム検証
データ整合性検証のために、暗号学的 SHA-256 ハッシュと CRC32 チェックサムの両方を計算する。
パイプライン
MD5 ハッシュ後に Base58 エンコード
MD5 ハッシュを計算し、コンパクトな表現のために Base58 としてエンコードする。
パイプライン
マルチハッシュ速度比較
入力をハッシュし、複数のハッシュアルゴリズムをベンチマークして速度と出力を比較する。
パイプライン
パスワード生成とハッシュ
ランダムパスワードを生成し、安全な保存のためにハッシュする。
パイプライン
SHA3-256 ハッシュと CRC32 チェックサム
SHA3-256 ハッシュを計算し、二重整合性検証のために CRC32 チェックサムを計算する。
パイプライン
SHA-512 ハッシュ後に Hex エンコード
SHA-512 ハッシュを計算し、可読性のために Hex としてエンコードする。
パイプライン
テキスト反転とハッシュ
テキストを反転し、その後反転結果の SHA-256 ハッシュを計算する。
パイプライン
テキストスクランブルとハッシュ
テキストをスクランブルし、その後スクランブル結果をハッシュする。
パイプライン

関連ツール