相互 TLS(mTLS)認証を実装する
mTLS はクライアントとサーバーの両方に証明書の提示を求め、パスワードなしで強力な双方向認証を実現します。サービス間通信やゼロトラストアーキテクチャで一般的です。
- 1
標準 TLS では、サーバーのみが identity を証明します。mTLS では、クライアントも証明書を提示し、サーバーが検証します。これにより、サービス間通信からパスワードが排除されます。サーバーはクライアント証明書を「要求して検証する」よう設定します。
- 2 RSA ツール →
クライアント鍵ペアを生成し、CSR を作成します。内部 CA が署名してクライアント証明書を返します。クライアントは証明書と秘密鍵の両方を保存します。
- 3 ハッシュ計算ツール →
クライアント証明書のチェーンを内部 CA のルートに対して検証します。サーバーはこの CA を信頼する必要があります(クライアント検証用の信頼された CA として設定)。
- 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 ハッシュを計算する。 パイプライン
テキストスクランブルとハッシュ
テキストをスクランブルし、その後スクランブル結果をハッシュする。 パイプライン
関連ツール
RSA ツール
RSA key generation, encryption, decryption, signing, and verification using Web Crypto API。無料、プライベート、100%クライアントサイド。 ツール
ハッシュ計算ツール
Compute MD5, SHA-1, SHA-256, or SHA-512 hashes with hex or Base64 output。無料、プライベート、100%クライアントサイド。 ツール
HMAC ジェネレーター
Generate HMAC (Keyed-Hash Message Authentication Code) with SHA-1/256/512。無料、プライベート、100%クライアントサイド。 ツール