{"id":910,"date":"2026-09-17T23:36:57","date_gmt":"2026-09-17T20:36:57","guid":{"rendered":"https:\/\/imaxis.ru\/?p=910"},"modified":"2026-09-18T00:05:47","modified_gmt":"2026-09-17T21:05:47","slug":"poluchenie-besplatnogo-ssl-sertifikata-let-s-encrypt-linux-i-windows","status":"publish","type":"post","link":"https:\/\/imaxis.ru\/?p=910","title":{"rendered":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 Let&#8217;s Encrypt (Linux \u0438 Windows)"},"content":{"rendered":"<h1>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 Let&#8217;s Encrypt (Linux \u0438 Windows)<\/h1>\n<p>Let&#8217;s Encrypt \u0432\u044b\u0434\u0430\u0451\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 TLS-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043d\u0430 90 \u0434\u043d\u0435\u0439 \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435\u043c. \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0432 Linux (certbot, acme.sh), Windows (win-acme) \u0438 \u0447\u0435\u0440\u0435\u0437 Docker, \u0432\u043a\u043b\u044e\u0447\u0430\u044f wildcard \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0430 IP-\u0430\u0434\u0440\u0435\u0441.<\/p>\n<hr \/>\n<h2>\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f<\/h2>\n<ul>\n<li><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u0434\u043e\u043c\u0435\u043d\u043e\u043c<\/strong> \u2014 \u0447\u0435\u0440\u0435\u0437 TXT-\u0437\u0430\u043f\u0438\u0441\u044c \u0432 DNS \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0444\u0430\u0439\u043b \u0432 <code>\/.well-known\/acme-challenge\/<\/code>).<\/li>\n<li><strong>\u0421\u0440\u043e\u043a 90 \u0434\u043d\u0435\u0439<\/strong> \u2014 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435. \u041f\u043e\u0441\u043b\u0435 60 \u0434\u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439.<\/li>\n<li><strong>\u0414\u043e\u043c\u0435\u043d 3-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u0432\u044b\u0448\u0435<\/strong> \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445: <code>layer3.layer2.com<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0438 \u0434\u043b\u044f <code>layer2.com<\/code>.<\/li>\n<\/ul>\n<hr \/>\n<h2>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u043c\u0435\u043d\u0430<\/h2>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h3>\n<p><strong>NGINX:<\/strong><\/p>\n<pre><code class=\"language-nginx\">server {\n    listen       80;\n    server_name  imaxis.ru;\n    root   \/usr\/share\/nginx\/html;\n}\n<\/code><\/pre>\n<p><strong>\u0433\u0434\u0435 <code>imaxis.ru<\/code> \u2014 \u0434\u043e\u043c\u0435\u043d, <code>\/usr\/share\/nginx\/html<\/code> \u2014 \u043a\u043e\u0440\u0435\u043d\u044c NGINX.<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0430\u0439\u0442 \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0435\u0433\u043e <code>server<\/code>:<\/p>\n<pre><code class=\"language-nginx\">location ~ \/.well-known\/acme-challenge {\n    root \/usr\/share\/nginx\/html;\n    allow all;\n}\n<\/code><\/pre>\n<p><strong>\u0417\u0430\u043f\u0440\u043e\u0441\u044b \u043a <code>\/.well-known<\/code> \u043e\u0442\u0434\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430, <code>allow all<\/code> \u2014 \u0434\u043e\u0441\u0442\u0443\u043f \u0432\u0441\u0435\u043c.<\/strong><\/p>\n<p>\u041f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0432:<\/p>\n<pre><code class=\"language-nginx\">location ~ \/.well-known\/acme-challenge {\n    root \/usr\/share\/nginx\/html;\n    allow all;\n}\nlocation \/ {\n    return 301 https:\/\/$host$request_uri;\n}\n<\/code><\/pre>\n<pre><code class=\"language-bash\">nginx -t &amp;&amp; nginx -s reload\n<\/code><\/pre>\n<p><strong>Apache:<\/strong><\/p>\n<p><strong>CentOS:<\/strong><\/p>\n<pre><code class=\"language-bash\">vi \/etc\/httpd\/conf.d\/lets.conf\n<\/code><\/pre>\n<p><strong>Ubuntu \/ Debian:<\/strong><\/p>\n<pre><code class=\"language-bash\">vi \/etc\/apache2\/conf-enabled\/lets.conf\n<\/code><\/pre>\n<pre><code>Alias \/.well-known\/acme-challenge\/ \/var\/www\/html\/.well-known\/acme-challenge\/\n<\/code><\/pre>\n<pre><code class=\"language-bash\">apachectl configtest\nsystemctl restart httpd || systemctl restart apache2\n<\/code><\/pre>\n<p><strong>Windows (IIS):<\/strong> \u0441\u0430\u0439\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043f\u043e HTTP \u043d\u0430 \u043d\u0443\u0436\u043d\u043e\u0435 \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f; \u0432 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430\u0445 \u0443\u0437\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u043e\u043c\u0435\u043d \u0434\u043b\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430.<\/p>\n<h3>\u0427\u0435\u0440\u0435\u0437 DNS<\/h3>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u043e\u0449\u0435, \u043d\u043e \u0430\u0432\u0442\u043e\u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f DNS \u0441 certbot-\u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438. \u0427\u0430\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432. \u041d\u0443\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e DNS-\u0437\u0430\u043f\u0438\u0441\u044f\u043c\u0438 \u0434\u043e\u043c\u0435\u043d\u0430.<\/p>\n<hr \/>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 certbot<\/h2>\n<p><strong>Rocky Linux:<\/strong><\/p>\n<pre><code class=\"language-bash\">dnf install epel-release\ndnf install certbot\n<\/code><\/pre>\n<p><strong>CentOS 8:<\/strong><\/p>\n<pre><code class=\"language-bash\">dnf --enablerepo=powertools install certbot\n<\/code><\/pre>\n<p><strong>CentOS 7:<\/strong><\/p>\n<pre><code class=\"language-bash\">yum install certbot\n<\/code><\/pre>\n<p><strong>Ubuntu \/ Debian:<\/strong><\/p>\n<pre><code class=\"language-bash\">apt update\napt install certbot\n<\/code><\/pre>\n<p><strong>\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 pip:<\/strong><\/p>\n<pre><code class=\"language-bash\">apt install python3-pip      # DEB\nyum install python3-pip      # RPM\npython3 -m pip install --upgrade pip\npython3 -m pip install certbot\n<\/code><\/pre>\n<p><strong>Windows \u2014 win-acme:<\/strong> \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c <a href=\"https:\/\/github.com\/PKISharp\/win-acme\/releases\">win-acme pluggable<\/a> \u043d\u0443\u0436\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432.<\/p>\n<hr \/>\n<h2>\u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430<\/h2>\n<h3>Linux<\/h3>\n<p><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440:<\/strong><\/p>\n<pre><code class=\"language-bash\">certbot certonly --webroot --agree-tos --no-eff-email --email &lt;email&gt; --webroot-path &lt;\u043f\u0443\u0442\u044c&gt; -d &lt;\u0434\u043e\u043c\u0435\u043d&gt; [-d &lt;\u0434\u043e\u043c\u0435\u043d&gt; ...]\n<\/code><\/pre>\n<p>\u0433\u0434\u0435:<\/p>\n<ul>\n<li><code>certonly<\/code> \u2014 \u0432\u044b\u043f\u0443\u0441\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430;<\/li>\n<li><code>webroot<\/code> \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043a\u043e\u0440\u043d\u044e \u0441\u0430\u0439\u0442\u0430;<\/li>\n<li><code>agree-tos<\/code> \u2014 \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0435 \u0441 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439;<\/li>\n<li><code>no-eff-email<\/code> \u2014 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u0440\u0430\u0441\u0441\u044b\u043b\u043e\u043a;<\/li>\n<li><code>email<\/code> \u2014 \u043f\u043e\u0447\u0442\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430;<\/li>\n<li><code>webroot-path<\/code> \u2014 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u0430\u0439\u0442\u0430;<\/li>\n<li><code>-d<\/code> \u2014 \u0434\u043e\u043c\u0435\u043d\u044b.<\/li>\n<\/ul>\n<p><strong>NGINX:<\/strong><\/p>\n<pre><code class=\"language-bash\">certbot certonly --webroot --agree-tos --no-eff-email --email postmaster@imaxis.ru --webroot-path \/usr\/share\/nginx\/html\/ -d imaxis.ru -d www.imaxis.ru\n<\/code><\/pre>\n<p><strong>Apache:<\/strong><\/p>\n<pre><code class=\"language-bash\">certbot certonly --webroot --agree-tos --no-eff-email --email postmaster@imaxis.ru --webroot-path \/var\/www\/html\/ -d imaxis.ru -d www.imaxis.ru\n<\/code><\/pre>\n<p><strong>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0432 <code>\/etc\/letsencrypt\/archive\/imaxis.ru<\/code>, \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u0438 \u2014 \u0432 <code>\/etc\/letsencrypt\/live\/imaxis.ru<\/code>. \u0412 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u0445 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u043f\u0443\u0442\u0438 \u0434\u043e \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u043e\u0432: \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u044b \u0432 <code>archive<\/code> \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u0438 \u2014 \u043d\u0435\u0442. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u2014 <code>cert.pem<\/code>, \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u2014 <code>privkey.pem<\/code>, \u043f\u043e\u043b\u043d\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u2014 <code>fullchain.pem<\/code>.<\/strong><\/p>\n<p><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 DNS:<\/strong><\/p>\n<pre><code class=\"language-bash\">certbot certonly --manual --agree-tos --email postmaster@imaxis.ru --preferred-challenges=dns -d imaxis.ru -d www.imaxis.ru\n<\/code><\/pre>\n<p>\u041d\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u043c <strong>Y<\/strong>:<\/p>\n<pre><code>Please deploy a DNS TXT record under the name\n_acme-challenge.imaxis.ru with the following value:\nW2SC9b88y2j2oUjhxVgS7Bphph9g5PqhkBq9KiWkLTm\n<\/code><\/pre>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u0451\u043c TXT-\u0437\u0430\u043f\u0438\u0441\u044c <code>_acme-challenge.imaxis.ru<\/code> \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c Enter. \u0414\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f.<\/strong><\/p>\n<h3>Windows (win-acme)<\/h3>\n<pre><code class=\"language-cmd\">cd C:win-acme.v2.1.6.773.x64.pluggable\nwacs.exe\n<\/code><\/pre>\n<p><strong>\u0412 PowerShell \u2014 <code>.wacs.exe<\/code>.<\/strong><\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PEM:<\/p>\n<pre><code class=\"language-cmd\">wacs.exe --store pemfiles --pemfilespath C:Certificates\n<\/code><\/pre>\n<p>\u0412 \u043c\u0435\u043d\u044e \u0432\u0432\u043e\u0434\u0438\u043c <strong>N<\/strong> (\u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442), \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0430\u0439\u0442 IIS, \u043f\u0440\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430\u0445 \u2014 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u0432\u0432\u043e\u0434\u0438\u043c email. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 \u043d\u0430 443 \u0438 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u044f \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435.<\/p>\n<hr \/>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435<\/h2>\n<h3>Linux<\/h3>\n<p>\u0412 \u0441\u0432\u0435\u0436\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438:<\/p>\n<pre><code class=\"language-bash\">cat \/etc\/cron.d\/certbot\n<\/code><\/pre>\n<pre><code>SHELL=\/bin\/sh\nPATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/sbin:\/bin:\/usr\/sbin:\/usr\/bin\n0 *\/12 * * * root test -x \/usr\/bin\/certbot -a ! -d \/run\/systemd\/system &amp;&amp; perl -e 'sleep int(rand(43200))' &amp;&amp; certbot -q renew\n<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 cron \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/p>\n<pre><code class=\"language-bash\">crontab -e\n<\/code><\/pre>\n<pre><code>0 0 * * 1,4 \/usr\/bin\/certbot renew --noninteractive\n<\/code><\/pre>\n<p><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435 \u2014 \u043f\u043e \u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a\u0430\u043c \u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430\u043c \u0432 00:00. <code>certbot renew<\/code> \u043f\u0440\u043e\u0434\u043b\u0435\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0434\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u043d\u0435\u0435 30 \u0434\u043d\u0435\u0439, \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u0438.<\/strong><\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u2014 \u0437\u0430\u0434\u0430\u0451\u043c hook:<\/p>\n<pre><code class=\"language-bash\">vi \/etc\/letsencrypt\/cli.ini\n<\/code><\/pre>\n<pre><code>deploy-hook = systemctl reload nginx\n<\/code><\/pre>\n<h3>Windows<\/h3>\n<p>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 Windows.<\/p>\n<hr \/>\n<h2>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 Docker<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u0442, \u043d\u043e \u0435\u0441\u0442\u044c Docker, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 certbot \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c:<\/p>\n<pre><code class=\"language-bash\">docker run -it --rm --name certbot -p 80:80 -v &quot;\/etc\/letsencrypt:\/etc\/letsencrypt&quot; -v &quot;\/var\/lib\/letsencrypt:\/var\/lib\/letsencrypt&quot; certbot\/certbot certonly\n<\/code><\/pre>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0440\u0435\u0436\u0438\u043c <strong>1 (standalone)<\/strong>, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c email, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044e, \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u043c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430\u0445 (Y\/N) \u0438 \u0432\u0432\u043e\u0434\u0438\u043c \u0434\u043e\u043c\u0435\u043d\u044b:<\/p>\n<pre><code>Please enter the domain name(s) ...: imaxis.ru www.imaxis.ru\n<\/code><\/pre>\n<pre><code>Successfully received certificate.\n<\/code><\/pre>\n<p><strong>\u041f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435:<\/strong><\/p>\n<pre><code class=\"language-bash\">docker run -it --rm --name certbot -p 80:80 -v &quot;\/etc\/letsencrypt:\/etc\/letsencrypt&quot; -v &quot;\/var\/lib\/letsencrypt:\/var\/lib\/letsencrypt&quot; certbot\/certbot renew\n<\/code><\/pre>\n<hr \/>\n<h2>Wildcard-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (*.domain)<\/h2>\n<p>\u0421 2018 \u0433\u043e\u0434\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0430 \u0432\u0441\u0435 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u044b.<\/p>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/strong><\/p>\n<ol>\n<li>\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 DNS, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0430\u0432\u0442\u043e\u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 DNS-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440. \u0418\u043d\u0430\u0447\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u2014 \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/li>\n<li>\u0421\u0440\u043e\u043a \u2014 \u0442\u0430\u043a\u0436\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u044e certbot (\u043d\u0443\u0436\u043d\u0430 0.22.0+):<\/p>\n<pre><code class=\"language-bash\">certbot --version\n<\/code><\/pre>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c:<\/p>\n<pre><code class=\"language-bash\">yum update certbot                 # RPM\napt --only-upgrade install certbot # DEB\n<\/code><\/pre>\n<p><strong>\u0412\u044b\u043f\u0443\u0441\u043a:<\/strong><\/p>\n<pre><code class=\"language-bash\">certbot certonly --manual --agree-tos --email master@imaxis.ru --server https:\/\/acme-v02.api.letsencrypt.org\/directory --preferred-challenges=dns -d imaxis.ru -d *.imaxis.ru\n<\/code><\/pre>\n<p><strong>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c <code>--server<\/code> (ACMEv2) \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438 \u043d\u0430 <code>*.imaxis.ru<\/code>, \u0438 \u043d\u0430 \u0441\u0430\u043c <code>imaxis.ru<\/code> \u2014 \u043f\u0435\u0440\u0432\u043e\u0435 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0433\u043e.<\/strong><\/p>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442 TXT-\u0437\u0430\u043f\u0438\u0441\u044c:<\/p>\n<pre><code>Please deploy a DNS TXT record under the name\n_acme-challenge.imaxis.ru with the following value:\nDN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI\n<\/code><\/pre>\n<p>\u0412 BIND:<\/p>\n<pre><code>_acme-challenge IN      TXT     DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI\n<\/code><\/pre>\n<p><strong>\u041d\u0435 \u0441\u043f\u0435\u0448\u0438\u0442\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c Enter \u2014 \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u0443 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435:<\/strong><\/p>\n<pre><code class=\"language-bash\">nslookup -type=txt _acme-challenge.imaxis.ru 8.8.8.8\n<\/code><\/pre>\n<p><strong>\u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e wildcard \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u0443\u044e TXT-\u0437\u0430\u043f\u0438\u0441\u044c \u2014 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443.<\/strong> \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0445\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432 <code>\/etc\/letsencrypt\/live\/imaxis.ru\/<\/code>.<\/p>\n<hr \/>\n<h2>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0430 IP-\u0430\u0434\u0440\u0435\u0441<\/h2>\n<p>\u0421 \u044f\u043d\u0432\u0430\u0440\u044f 2026 \u0433\u043e\u0434\u0430 Let&#8217;s Encrypt \u0432\u044b\u0434\u0430\u0451\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043d\u0430 IP-\u0430\u0434\u0440\u0435\u0441. \u041d\u044e\u0430\u043d\u0441\u044b:<\/p>\n<ul>\n<li>\u0441\u0440\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u2014 <strong>6 \u0434\u043d\u0435\u0439<\/strong>;<\/li>\n<li>\u0432\u0435\u0440\u0441\u0438\u044f certbot \u2014 <strong>\u043d\u0435 \u043d\u0438\u0436\u0435 4<\/strong>;<\/li>\n<li>\u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u043c HTTP (\u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 80-\u043c \u043f\u043e\u0440\u0442\u0443).<\/li>\n<\/ul>\n<p><strong>Certbot:<\/strong><\/p>\n<pre><code class=\"language-bash\">certbot certonly --staging --preferred-profile shortlived --webroot -w \/usr\/share\/nginx\/html --ip-address 1.2.3.4\n<\/code><\/pre>\n<p><strong>acme.sh:<\/strong><\/p>\n<pre><code class=\"language-bash\">curl https:\/\/get.acme.sh | sh -s email=master@imaxis.ru\n~\/.acme.sh\/acme.sh --issue -w \/usr\/share\/nginx\/html -d 1.2.3.4 --server letsencrypt --certificate-profile shortlived\n<\/code><\/pre>\n<pre><code>Your cert is in: \/root\/.acme.sh\/1.2.3.4_ecc\/1.2.3.4.cer\nYour cert key is in: \/root\/.acme.sh\/1.2.3.4_ecc\/1.2.3.4.key\nAnd the full-chain cert is in: \/root\/.acme.sh\/1.2.3.4_ecc\/fullchain.cer\n<\/code><\/pre>\n<p><strong>\u041d\u0443\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u2014 <code>1.2.3.4.key<\/code> \u0438 <code>fullchain.cer<\/code>.<\/strong><\/p>\n<p>\u0410\u0432\u0442\u043e\u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"language-bash\">crontab -e\n<\/code><\/pre>\n<pre><code>0 0 * * * \/root\/.acme.sh\/acme.sh --cron --home &quot;\/root\/.acme.sh\/acme.sh&quot;\n<\/code><\/pre>\n<hr \/>\n<h2>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/h2>\n<pre><code class=\"language-bash\">certbot certificates              # \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\ncertbot delete -d imaxis.ru        # \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\n<\/code><\/pre>\n<hr \/>\n<h2>\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 Windows \u0441 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c<\/h2>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d. \u041f\u0440\u0430\u0432\u0438\u043c <code>settings.json<\/code> \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 win-acme:<\/p>\n<pre><code class=\"language-json\">&quot;PrivateKeyExportable&quot;: true,\n<\/code><\/pre>\n<pre><code class=\"language-cmd\">.wacs.exe --renew --force\n<\/code><\/pre>\n<p><strong>\u0424\u0430\u0439\u043b <code>.pfx<\/code> \u2014 \u0432 <code>%programdata%win-acme$baseuri$certificates<\/code>. \u041f\u0430\u0440\u043e\u043b\u044c \u2014 \u0432 \u043c\u0435\u043d\u044e wacs: <code>Manage Renewals &gt; Show details<\/code>.<\/strong><\/p>\n<hr \/>\n<h2>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043b\u044f MS Exchange<\/h2>\n<p>\u0412 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 win-acme \u0435\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 <code>ImportExchange.v2.ps1<\/code> \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 Exchange.<\/p>\n<pre><code class=\"language-cmd\">wacs.exe --source manual --host exchange.imaxis.ru,autodiscover.imaxis.ru --store centralssl,certificatestore --certificatestore My --acl-fullcontrol &quot;network service,administrators&quot; --centralsslstore &quot;C:SSL&quot; --installation iis,script --installationsiteid 1 --script &quot;.\/Scripts\/ImportExchange.v2.ps1&quot; --scriptparameters &quot;'{CertThumbprint}' 'IIS,SMTP,IMAP' 1 '{CacheFile}' '{CachePassword}' '{CertFriendlyName}'&quot;\n<\/code><\/pre>\n<p><strong>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442 \u0444\u0430\u0439\u043b\u044b \u0432 <code>C:SSL<\/code> \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043b\u044e\u0447\u0438 \u0432 Exchange. \u0412 PowerShell \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 <code>.wacs.exe ...<\/code>.<\/strong><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u2014 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u043b\u0443\u0436\u0431\u0430\u043c Exchange (SMTP, IIS).<\/p>\n<hr \/>\n<h2>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438<\/h2>\n<h3>1. Missing command line flag or config entry for this setting<\/h3>\n<p><strong>\u041f\u0440\u0438\u0447\u0438\u043d\u0430:<\/strong> \u043f\u0440\u0438 \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0438 certbot \u0438\u0449\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 <code>\/etc\/letsencrypt\/renewal\/&lt;\u0434\u043e\u043c\u0435\u043d&gt;.conf<\/code>; \u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d <code>webroot_map<\/code>, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435:<\/strong><\/p>\n<pre><code class=\"language-bash\">vi \/etc\/letsencrypt\/renewal\/imaxis.ru.conf\n<\/code><\/pre>\n<p>\u0412\u043d\u0438\u0437\u0443 \u043d\u0430\u0445\u043e\u0434\u0438\u043c <code>webroot_map<\/code> \u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a \u0432\u0438\u0434\u0443:<\/p>\n<pre><code>imaxis.ru = \/usr\/share\/nginx\/html\n<\/code><\/pre>\n<h3>2. ACMEv1 is deprecated &#8230;<\/h3>\n<pre><code>... ACMEv1 is deprecated and you can no longer get certificates from this endpoint. Please use the ACMEv2 endpoint ...\n<\/code><\/pre>\n<p><strong>\u041f\u0440\u0438\u0447\u0438\u043d\u0430:<\/strong> \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f certbot, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0441 ACMEv1.<\/p>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435:<\/strong> \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c certbot:<\/p>\n<pre><code class=\"language-bash\">apt --only-upgrade install certbot    # Ubuntu\/Debian\nyum update certbot                    # Rocky\/CentOS\n<\/code><\/pre>\n<h3>3. Remote error: tls: handshake failure<\/h3>\n<p><strong>\u041f\u0440\u0438\u0447\u0438\u043d\u0430:<\/strong> Let&#8217;s Encrypt \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043b \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u0448\u0438\u0444\u0440\u043e\u0432 TLS.<\/p>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435:<\/strong> \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c <code>ssl_protocols<\/code> \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438:<\/p>\n<pre><code class=\"language-nginx\">ssl_protocols TLSv1.2 TLSv1.3;\n<\/code><\/pre>\n<p><strong>\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 <code>TLSv1<\/code> \u0438 <code>TLSv1.1<\/code> \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435.<\/strong><\/p>\n<pre><code class=\"language-bash\">nginx -t &amp;&amp; nginx -s reload\n<\/code><\/pre>\n<hr \/>\n<h2>\u0422\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438<\/h2>\n<ul>\n<li><strong>\u0421\u0438\u043c\u043b\u0438\u043d\u043a\u0438 <code>live\/<\/code><\/strong> \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u0445 \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0445, \u0430 \u043d\u0435 <code>archive\/<\/code>.<\/li>\n<li><strong><code>deploy-hook<\/code><\/strong> \u2014 \u0441\u0435\u0440\u0432\u0438\u0441\u044b (NGINX, Postfix, Dovecot) \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430.<\/li>\n<li><strong>Wildcard \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 DNS<\/strong> \u2014 HTTP-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043b\u044f <code>*.domain<\/code> \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/li>\n<li><strong>\u041f\u043e\u0440\u0442 80<\/strong> \u2014 HTTP-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e 80-\u0433\u043e \u043f\u043e\u0440\u0442\u0430; \u043f\u0440\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u043c 80 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 DNS \u0438\u043b\u0438 standalone.<\/li>\n<li><strong>IP-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b<\/strong> \u2014 \u0441\u0440\u043e\u043a 6 \u0434\u043d\u0435\u0439, \u0442\u0440\u0435\u0431\u0443\u044e\u0442 certbot 4+ \u0438 HTTP-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438.<\/li>\n<li><strong>\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0434\u043e\u043c\u0435\u043d\u0430<\/strong> \u2014 \u0434\u043b\u044f <code>layer3.layer2.com<\/code> \u043d\u0443\u0436\u043d\u044b \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u043d\u0430 <code>layer2.com<\/code>.<\/li>\n<li><strong>\u041b\u0438\u043c\u0438\u0442\u044b Let&#8217;s Encrypt<\/strong> \u2014 \u0435\u0441\u0442\u044c \u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043c\u0438\u0442\u044b \u043d\u0430 \u0432\u044b\u043f\u0443\u0441\u043a; \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0441 <code>--staging<\/code>.<\/li>\n<\/ul>\n<hr \/>\n<h2>\u0428\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430<\/h2>\n<pre><code class=\"language-bash\"># NGINX webroot\ncertbot certonly --webroot --agree-tos --no-eff-email --email postmaster@imaxis.ru \n  --webroot-path \/usr\/share\/nginx\/html\/ -d imaxis.ru -d www.imaxis.ru\n\n# DNS (manual)\ncertbot certonly --manual --agree-tos --email postmaster@imaxis.ru --preferred-challenges=dns -d imaxis.ru\n\n# wildcard\ncertbot certonly --manual --preferred-challenges=dns -d imaxis.ru -d '*.imaxis.ru'\n\n# IP (6 \u0434\u043d\u0435\u0439)\ncertbot certonly --preferred-profile shortlived --webroot -w \/usr\/share\/nginx\/html --ip-address 1.2.3.4\n\n# \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u0435\ncertbot renew --noninteractive\ncertbot certificates\n<\/code><\/pre>\n<p><em>\u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u043d\u0430: Ubuntu 22.04\/24.04, Rocky Linux 9, Windows Server (IIS) + certbot, acme.sh, win-acme.<\/em><br \/>\n<em>\u0414\u0430\u0442\u0430: \u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c 2026.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 Let&#8217;s Encrypt (Linux \u0438 Windows) Let&#8217;s Encrypt<\/p>\n","protected":false},"author":0,"featured_media":967,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-910","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"aioseo_notices":[],"views":10,"_links":{"self":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts\/910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=910"}],"version-history":[{"count":3,"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts\/910\/revisions"}],"predecessor-version":[{"id":927,"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/posts\/910\/revisions\/927"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=\/wp\/v2\/media\/967"}],"wp:attachment":[{"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imaxis.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}