macOS 与 iOS 使用客户端证书访问 mTLS 网站
macOS と iOS でクライアント証明書を使用して mTLS Websitesにアクセスする 本文では、macOS および iOS デバイスでクライアント証明書を設定し、双方向 TLS(mTLS)を有効にした HTTPS ウェブサイトにアクセスする方法を説明します。例では、プライベート CA、step-ca、Nginx、PKCS#12、および PIV スマートカードを使用します。以下のドメイン名、証明書名、ファイル名、IP アドレスはすべて例なので、実際の値に置き換えてください。 1. mTLS 認証フロー 通常の HTTPS では主にクライアントがサーバー証明書を検証しますが、mTLS ではさらにサーバーがクライアント証明書を検証します。 基本フロー: クライアントが HTTPS サイトにアクセスする。 Nginx が TLS ハンドシェイク中にクライアント証明書を要求する。 ブラウザーまたはシステムがクライアント ID を選択し、対応する秘密鍵で署名する。 Nginx が構成に基づいてクライアント証明書、証明書チェーン、有効期限を検証する。 検証に成功すると接続は HTTP レイヤーに入り、サイト側のポリシーによってアクセスが許可されるかどうかが決定される。 クライアント ID とサーバー CA の信頼は、それぞれ独立した構成です。 クライアント ID:クライアント証明書およびそれに対応する秘密鍵。サーバーに対して自身を証明するために使用します。 サーバー CA の信頼:クライアントがウェブサイト用サーバー証明書の発行者を信頼する CA。HTTPS サーバーの同一性を検証するために使用します。 クライアント証明書をインストールしても、デバイスがプライベート CA を自動的に信頼するようになるわけではありません。 2. macOS:PIV ハードウェアキーの使用 クライアント秘密鍵が PIV 対応ハードウェアキーに保存されている場合は、秘密鍵をハードウェアデバイス内に保持し、秘密鍵ファイルのエクスポートを回避できます。ブラウザーがこの ID を使用できるかどうかは、macOS、スマートカードミドルウェア、鍵デバイス、およびブラウザーのサポート状況に依存します。 一般的な確認手順: PIV ハードウェアキーを挿入する。 macOS がスマートカードとその証明書を認識できることを確認する。 ブラウザーを開いて mTLS サイトにアクセスする。 ブラウザーがクライアント証明書を要求する場合は、対応する ID を選択する。 指示に従って PIN を入力する、またはハードウェア上の操作を完了する。 ページの表示結果とサーバーログを照合し、認証に成功したか確認する。 次のコマンドでシステムの状態を確認できます。 ...