<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>IOS on CX's Blog</title><link>https://blog.imcaoxuan.cn/ja/tags/ios/</link><description>Recent content in IOS on CX's Blog</description><generator>Hugo</generator><language>ja-jp</language><copyright>imcaoxuan.cn</copyright><lastBuildDate>Mon, 26 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.imcaoxuan.cn/ja/tags/ios/index.xml" rel="self" type="application/rss+xml"/><item><title>Mac 与 iPhone 使用客户端证书访问 mTLS 网站</title><link>https://blog.imcaoxuan.cn/ja/posts/2026-10-26-mtls-practice/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/ja/posts/2026-10-26-mtls-practice/</guid><description>&lt;h1 id="mac-と-iphone-でクライアント証明書を使用して-mtls-サイトにアクセスする"&gt;Mac と iPhone でクライアント証明書を使用して mTLS サイトにアクセスする&lt;/h1&gt;
&lt;p&gt;本稿では、macOS と iPhone でクライアント証明書を使用して内部ネットワークの mTLS サイトにアクセスする方法を記録する。内容には CanoKey PIV、&lt;code&gt;step-ca&lt;/code&gt;、Nginx、および iOS システムへの証明書のインストールが含まれる。&lt;/p&gt;
&lt;h2 id="1-環境と認証フロー"&gt;1. 環境と認証フロー&lt;/h2&gt;
&lt;p&gt;現在の環境は以下のとおりである。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CA：既存の &lt;code&gt;CX-Homelab-CA Root CA&lt;/code&gt; と &lt;code&gt;CX-Homelab-CA Intermediate CA&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;証明書の発行：&lt;code&gt;step-ca&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Web サーバー：Nginx 1.25.0。&lt;/li&gt;
&lt;li&gt;テストサイト：&lt;code&gt;https://www.home.arpa&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Mac クライアント：CanoKey PIV 9A。&lt;/li&gt;
&lt;li&gt;iPhone クライアント：PKCS#12 ファイルを介してクライアント証明書と秘密鍵をインポート。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;mTLS と通常の HTTPS の違いは、サーバーがクライアント証明書を検証し、クライアントもサーバー証明書を検証する必要がある点である。クライアント証明書には対応する秘密鍵が含まれている必要があり、&lt;code&gt;.crt&lt;/code&gt; ファイルだけをインストールしても、通常はクライアント認証を完了できない。&lt;/p&gt;
&lt;p&gt;基本フロー如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;クライアントが HTTPS サイトにアクセスする。&lt;/li&gt;
&lt;li&gt;Nginx がクライアント証明書を要求する。&lt;/li&gt;
&lt;li&gt;ブラウザーまたはシステムがクライアント ID を選択し、対応する秘密鍵を使用して TLS ハンドシェイクを完了する。&lt;/li&gt;
&lt;li&gt;Nginx がクライアント証明書の有効性、証明書チェーン、用途を検証する。&lt;/li&gt;
&lt;li&gt;検証に成功すると、サーバーは保護されたリソースへのアクセスを許可する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;需要注意すべき点として、クライアント証明書とサーバー CA の信頼は別々の問題である。クライアント ID をインストールしただけでは、デバイスがウェブサイトサーバー証明書の発行元であるプライベート CA を信頼できる状態になるわけではない。&lt;/p&gt;
&lt;h2 id="2-maccanokey-piv-9a-の使用"&gt;2. Mac：CanoKey PIV 9A の使用&lt;/h2&gt;
&lt;h3 id="21-現在の構成"&gt;2.1 現在の構成&lt;/h3&gt;
&lt;p&gt;Mac では CanoKey の PIV 9A スロットにクライアント ID を保存している。macOS はスマートカード関連の仕組みを通じて証明書と秘密鍵を認識し、ブラウザーは TLS ハンドシェイク時にその ID を使用する。&lt;/p&gt;</description></item><item><title>macOS 与 iOS 使用客户端证书访问 mTLS 网站</title><link>https://blog.imcaoxuan.cn/ja/posts/2026-10-26-mtls-client-cert-macos-ios/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/ja/posts/2026-10-26-mtls-client-cert-macos-ios/</guid><description>&lt;h1 id="macos-と-ios-でクライアント証明書を使用して-mtls--websitesにアクセスする"&gt;macOS と iOS でクライアント証明書を使用して mTLS Websitesにアクセスする&lt;/h1&gt;
&lt;p&gt;本文では、macOS および iOS デバイスでクライアント証明書を設定し、双方向 TLS（mTLS）を有効にした HTTPS ウェブサイトにアクセスする方法を説明します。例では、プライベート CA、&lt;code&gt;step-ca&lt;/code&gt;、Nginx、PKCS#12、および PIV スマートカードを使用します。以下のドメイン名、証明書名、ファイル名、IP アドレスはすべて例なので、実際の値に置き換えてください。&lt;/p&gt;
&lt;h2 id="1-mtls-認証フロー"&gt;1. mTLS 認証フロー&lt;/h2&gt;
&lt;p&gt;通常の HTTPS では主にクライアントがサーバー証明書を検証しますが、mTLS ではさらにサーバーがクライアント証明書を検証します。&lt;/p&gt;
&lt;p&gt;基本フロー：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;クライアントが HTTPS サイトにアクセスする。&lt;/li&gt;
&lt;li&gt;Nginx が TLS ハンドシェイク中にクライアント証明書を要求する。&lt;/li&gt;
&lt;li&gt;ブラウザーまたはシステムがクライアント ID を選択し、対応する秘密鍵で署名する。&lt;/li&gt;
&lt;li&gt;Nginx が構成に基づいてクライアント証明書、証明書チェーン、有効期限を検証する。&lt;/li&gt;
&lt;li&gt;検証に成功すると接続は HTTP レイヤーに入り、サイト側のポリシーによってアクセスが許可されるかどうかが決定される。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;クライアント ID とサーバー CA の信頼は、それぞれ独立した構成です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;クライアント ID&lt;/strong&gt;：クライアント証明書およびそれに対応する秘密鍵。サーバーに対して自身を証明するために使用します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;サーバー CA の信頼&lt;/strong&gt;：クライアントがウェブサイト用サーバー証明書の発行者を信頼する CA。HTTPS サーバーの同一性を検証するために使用します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;クライアント証明書をインストールしても、デバイスがプライベート CA を自動的に信頼するようになるわけではありません。&lt;/p&gt;
&lt;h2 id="2-macospiv-ハードウェアキーの使用"&gt;2. macOS：PIV ハードウェアキーの使用&lt;/h2&gt;
&lt;p&gt;クライアント秘密鍵が PIV 対応ハードウェアキーに保存されている場合は、秘密鍵をハードウェアデバイス内に保持し、秘密鍵ファイルのエクスポートを回避できます。ブラウザーがこの ID を使用できるかどうかは、macOS、スマートカードミドルウェア、鍵デバイス、およびブラウザーのサポート状況に依存します。&lt;/p&gt;
&lt;p&gt;一般的な確認手順：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;PIV ハードウェアキーを挿入する。&lt;/li&gt;
&lt;li&gt;macOS がスマートカードとその証明書を認識できることを確認する。&lt;/li&gt;
&lt;li&gt;ブラウザーを開いて mTLS サイトにアクセスする。&lt;/li&gt;
&lt;li&gt;ブラウザーがクライアント証明書を要求する場合は、対応する ID を選択する。&lt;/li&gt;
&lt;li&gt;指示に従って PIN を入力する、またはハードウェア上の操作を完了する。&lt;/li&gt;
&lt;li&gt;ページの表示結果とサーバーログを照合し、認証に成功したか確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;次のコマンドでシステムの状態を確認できます。&lt;/p&gt;</description></item></channel></rss>