Mac 与 iPhone 使用客户端证书访问 mTLS 网站
Mac と iPhone でクライアント証明書を使用して mTLS サイトにアクセスする 本稿では、macOS と iPhone でクライアント証明書を使用して内部ネットワークの mTLS サイトにアクセスする方法を記録する。内容には CanoKey PIV、step-ca、Nginx、および iOS システムへの証明書のインストールが含まれる。 1. 環境と認証フロー 現在の環境は以下のとおりである。 CA:既存の CX-Homelab-CA Root CA と CX-Homelab-CA Intermediate CA。 証明書の発行:step-ca。 Web サーバー:Nginx 1.25.0。 テストサイト:https://www.home.arpa。 Mac クライアント:CanoKey PIV 9A。 iPhone クライアント:PKCS#12 ファイルを介してクライアント証明書と秘密鍵をインポート。 mTLS と通常の HTTPS の違いは、サーバーがクライアント証明書を検証し、クライアントもサーバー証明書を検証する必要がある点である。クライアント証明書には対応する秘密鍵が含まれている必要があり、.crt ファイルだけをインストールしても、通常はクライアント認証を完了できない。 基本フロー如下: クライアントが HTTPS サイトにアクセスする。 Nginx がクライアント証明書を要求する。 ブラウザーまたはシステムがクライアント ID を選択し、対応する秘密鍵を使用して TLS ハンドシェイクを完了する。 Nginx がクライアント証明書の有効性、証明書チェーン、用途を検証する。 検証に成功すると、サーバーは保護されたリソースへのアクセスを許可する。 需要注意すべき点として、クライアント証明書とサーバー CA の信頼は別々の問題である。クライアント ID をインストールしただけでは、デバイスがウェブサイトサーバー証明書の発行元であるプライベート CA を信頼できる状態になるわけではない。 2. Mac:CanoKey PIV 9A の使用 2.1 現在の構成 Mac では CanoKey の PIV 9A スロットにクライアント ID を保存している。macOS はスマートカード関連の仕組みを通じて証明書と秘密鍵を認識し、ブラウザーは TLS ハンドシェイク時にその ID を使用する。 ...