<?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>Nginx on CX's Blog</title><link>https://blog.imcaoxuan.cn/en/tags/nginx/</link><description>Recent content in Nginx on CX's Blog</description><generator>Hugo</generator><language>en-US</language><copyright>imcaoxuan.cn</copyright><lastBuildDate>Mon, 26 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.imcaoxuan.cn/en/tags/nginx/index.xml" rel="self" type="application/rss+xml"/><item><title>Accessing mTLS Websites with Client Certificates on macOS and iOS</title><link>https://blog.imcaoxuan.cn/en/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/en/posts/2026-10-26-mtls-client-cert-macos-ios/</guid><description>&lt;h1 id="accessing-mtls-websites-with-client-certificates-on-macos-and-ios"&gt;Accessing mTLS Websites with Client Certificates on macOS and iOS&lt;/h1&gt;
&lt;p&gt;This article explains how to configure client certificates on macOS and iOS devices to access HTTPS websites that enable mutual TLS (mTLS). The examples use a private CA, &lt;code&gt;step-ca&lt;/code&gt;, Nginx, PKCS#12, and a PIV smart card. All domain names, certificate names, filenames, and IP addresses in this article are examples; replace them with your actual values.&lt;/p&gt;
&lt;h2 id="1-mtls-authentication-process"&gt;1. mTLS Authentication Process&lt;/h2&gt;
&lt;p&gt;With ordinary HTTPS, the client primarily validates the server certificate; mTLS additionally requires the server to validate the client certificate.&lt;/p&gt;</description></item><item><title>Mac 与 iPhone 使用客户端证书访问 mTLS 网站</title><link>https://blog.imcaoxuan.cn/en/posts/2026-10-26-mtls-practice/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/en/posts/2026-10-26-mtls-practice/</guid><description>&lt;h1 id="accessing-mtls-websites-with-client-certificates-on-mac-and-iphone"&gt;Accessing mTLS Websites with Client Certificates on Mac and iPhone&lt;/h1&gt;
&lt;p&gt;This article documents how to use client certificates to access an internal mTLS website on macOS and iPhone. It covers CanoKey PIV, &lt;code&gt;step-ca&lt;/code&gt;, Nginx, and installing system certificates on iOS.&lt;/p&gt;
&lt;h2 id="1-environment-and-authentication-flow"&gt;1. Environment and Authentication Flow&lt;/h2&gt;
&lt;p&gt;The current environment is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CA: The existing &lt;code&gt;CX-Homelab-CA Root CA&lt;/code&gt; and &lt;code&gt;CX-Homelab-CA Intermediate CA&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Certificate issuance: &lt;code&gt;step-ca&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Web server: Nginx 1.25.0.&lt;/li&gt;
&lt;li&gt;Test site: &lt;code&gt;https://www.home.arpa&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Mac client: CanoKey PIV 9A.&lt;/li&gt;
&lt;li&gt;iPhone client: A client certificate and private key imported through a PKCS#12 file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The difference between mTLS and ordinary HTTPS is that the server validates the client certificate, while the client must also validate the server certificate. The client certificate must contain the corresponding private key; installing a &lt;code&gt;.crt&lt;/code&gt; file alone is generally insufficient to complete client authentication.&lt;/p&gt;</description></item></channel></rss>