<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Linonet</title><link>https://linonet.579759.xyz/en/post/</link><description>Recent content in Posts on Linonet</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Sat, 10 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://linonet.579759.xyz/en/post/index.xml" rel="self" type="application/rss+xml"/><item><title>NAT VPS SSL Certificate Request Guide: The Ultimate DNS Verification Solution to Bypass Port 80/443 Restrictions</title><link>https://linonet.579759.xyz/en/post/nat-vps-ssl-certificate/</link><pubDate>Sat, 10 Oct 2026 00:00:00 +0000</pubDate><guid>https://linonet.579759.xyz/en/post/nat-vps-ssl-certificate/</guid><description>&lt;h2 id="introduction"&gt;Introduction&#13;&#10;&lt;/h2&gt;&lt;p&gt;Anyone who has worked with VPS servers knows that high-value NAT VPS (NAT小鸡) instances are budget-friendly and feature excellent network routes. However, their primary drawback is the &lt;strong&gt;lack of a dedicated public IP address&lt;/strong&gt; and &lt;strong&gt;no complete access to default ports 80 and 443&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;When attempting to deploy a secure website or service on a NAT machine, traditional SSL certificate issuance methods—such as &lt;code&gt;acme.sh&lt;/code&gt; combined with Nginx via HTTP-01 verification—typically fail immediately with errors caused by unavailable port 80.&lt;/p&gt;&#10;&lt;p&gt;In this guide, we will walk through the entire process from scratch: from &lt;strong&gt;purchasing a VPS&lt;/strong&gt; and &lt;strong&gt;registering a domain name&lt;/strong&gt;, to utilizing the &lt;strong&gt;DNS verification mode in &lt;code&gt;acme.sh&lt;/code&gt;&lt;/strong&gt; to bypass port 80/443 restrictions and issue HTTPS certificates seamlessly!&lt;/p&gt;&#10;&lt;h2 id="1-prerequisites-vps-and-domain-purchase"&gt;1. Prerequisites: VPS and Domain Purchase&#13;&#10;&lt;/h2&gt;&lt;p&gt;Before starting the configuration, we need to prepare two essential components: a NAT VPS and a top-level domain name.&lt;/p&gt;&#10;&lt;h3 id="11-vps-purchase--key-considerations"&gt;1.1 VPS Purchase &amp;amp; Key Considerations&#13;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Selection Advice&lt;/strong&gt;: When buying a NAT VPS, check the port mapping rules provided by the host provider. Typically, providers allocate specific external ports for SSH access and custom services.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;OS Environment&lt;/strong&gt;: Installing a clean instance of Debian 11/12 or Ubuntu 22.04 is recommended.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="12-domain-purchase--dns-delegation"&gt;1.2 Domain Purchase &amp;amp; DNS Delegation&#13;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Registrars&lt;/strong&gt;: You can purchase affordable domain names from platforms like NameSilo, Porkbun, Cloudflare, or domestic providers like Tencent Cloud / Alibaba Cloud.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Critical Step&lt;/strong&gt;: To facilitate automated DNS verification via API later, &lt;strong&gt;it is strongly recommended to delegate your domain&amp;rsquo;s DNS resolution to Cloudflare&lt;/strong&gt; (free of charge and offers robust API management).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="2-problem-analysis-why-traditional-http-verification-fails-on-nat-instances"&gt;2. Problem Analysis: Why Traditional HTTP Verification Fails on NAT Instances&#13;&#10;&lt;/h2&gt;&lt;p&gt;Before diving into the setup, let&amp;rsquo;s examine the core issue:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Traditional Method (HTTP-01)&lt;/strong&gt;: Certificate Authorities (such as Let&amp;rsquo;s Encrypt) send an HTTP request to your server, which must validate domain ownership via &lt;strong&gt;Port 80&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;The NAT Dilemma&lt;/strong&gt;: Port 80 and Port 443 on a NAT VPS are usually occupied by the host node or&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item></channel></rss>