acme.sh Бесплатный сертификат доменного имени TSL/SSL

acme.sh — это бесплатное приложение для получения SSL-сертификатов, автоматизирующее процесс продления. С помощью скрипта acme.sh вы можете легко автоматизировать процесс подачи заявок на сертификаты доменов Let's Encrypt, сделав его бесплатным и простым. acme.sh реализует протокол ACME и может генерировать бесплатные сертификаты Let's Encrypt.

acme.sh Бесплатный сертификат доменного имени SSL/TSL

Используйте скрипт acme.sh для подачи заявки на бесплатный сертификат доменного имени TSL/SSL на сервере Linux.

,自动续签配置 acme.sh 脚本,Очень полезно申请脚本,安装简单,支持Применение метода и применение метода HTTP,Подача заявки на сертификат доменного имени проста, автоматизирована и бесплатна. acme.sh реализует протокол ACME и может генерировать бесплатные сертификаты от Let's Encrypt.

Введение в let's encrypt и acme.sh

Что такое Let's Encrypt

Let's Encrypt — это центр цифровой сертификации, запущенный в третьем квартале 2015 года. Его цель — исключить сложный процесс ручного создания и установки сертификатов с помощью автоматизированных процессов и способствовать более широкому использованию Всемирной паутины.Зашифрованные соединения повсюду, предоставляя бесплатный SSL//Сертификат.
Let's Encrypt разработан исследовательской группой Internet Security Research Group (ISRG). Среди основных спонсоров — Electronic Frontier Foundation, Mozilla Foundation, Akamai и Cisco. 9 апреля 2015 года ISRG объявила о партнёрстве с Linux Foundation.
Протокол, используемый для внедрения нового цифрового центра сертификации, называется Средой автоматического управления сертификатами (ACME).Проект этой спецификации доступен на сайте , а версия предложения была опубликована в видеПроект опубликован.
Процесс подачи заявки на сертификат доменного имени от Let's Encrypt прост, автоматизирован и бесплатен.

acme.sh Бесплатный сертификат доменного имени SSL/TSL

Что такое acme.sh

Проще говоря acme.sh Он реализует протокол ACME и может генерировать бесплатные сертификаты от Let's Encrypt.
acme.sh Он имеет следующие особенности:

  • Клиент протокола ACME, написанный исключительно на языке Shell (оболочка Unix).
  • Полная реализация протокола ACME.
  • Поддержка сертификатов ECDSA
  • Поддержка SAN и wildcard-сертификатов
  • Простой, мощный и очень удобный в использовании. Освоить его можно всего за 3 минуты.
  • Совместимо с Bash, dash и sh.
  • Написано исключительно на Shell, не зависит от .
  • Автоматизируйте выдачу, продление и установку сертификатов с помощью всего одного скрипта.
  • Права доступа не требуются. root/sudoer
  • Готов к использованию с Docker
  • Готов к IPv6
  • Для продления или ошибок и т.п. Уведомление о назначении.

Домашняя страница проекта Github:https://github.com/acmesh-official/acme.sh

Как установить acme.sh

Чистый скрипт оболочки Unix, реализующий клиентский протокол ACME.

Установить скрипт acme.sh

Установка очень проста, одна команда:

мой@example.comЗамените на свой адрес электронной почты.

curl https://get.acme.sh | sh -s email=my@example.com

Загрузите скрипт на сервер и установите его:

wget -O - https://get.acme.sh | sh -s email=my@example.com

Альтернативно, для установки из git, клонируйте этот проект и запустите установку:

git clone https://github.com/acmesh-official/acme.sh.git cd ./acme.sh ./acme.sh --install -m my@example.com

Установщик выполнит 3 действия:

  • Создайте и скопируйте в свой домашний каталог ( ): . Все сертификаты также будут помещены в эту папку. acme.sh$HOME~/.acme.sh/
  • Создайте псевдоним для следующего: acme.sh=~/.acme.sh/acme.sh
  • Создайте ежедневное задание cron для проверки и обновления сертификатов по мере необходимости.

Настройте скрипт acme.sh

Установить и использовать acme.sh могут как обычные пользователи, так и пользователи root.
Процесс установки проходит в следующие этапы:
Установите acme.sh в свой домашний каталог: ~/.acme.sh/ и создайте псевдоним bash для удобства:

псевдоним acme.sh=~/.acme.sh/acme.sh echo 'псевдоним acme.sh=~/.acme.sh/acme.sh' >>/etc/profile

В процессе установки будет автоматически создано задание cron для автоматической проверки всех сертификатов в 00:00 каждый день. Если срок действия сертификатов подходит к концу и их необходимо обновить, они будут автоматически обновлены.

00 00 * * * root /root/.acme.sh/acme.sh --cron --home /root/.acme.sh &>/var/log/acme.sh.logs

Более подробные параметры установки см.: https://github.com/Neilpang/acme.sh/wiki/How-to-install
Установка этого скрипта не затронет существующие системные функции и файлы. Все изменения ограничены каталогом установки: ~/.acme.sh/

Подайте заявку на сертификат с помощью acme.sh

acme.sh реализует все протоколы аутентификации, поддерживаемые протоколом ACME. Существует два основных способа аутентификации: HTTP и DNS.

HTTP-метод

Метод http требует размещения файла в корневом каталоге вашего сайта для подтверждения права собственности на доменное имя. После проверки вы можете сгенерировать сертификат.

Возьмем в качестве примера доменное имя boxpu.com:

acme.sh --issue -d boxpu.com -d *.boxpu.com --webroot /www/wwwroot/boxpu.com/

Просто укажите доменное имя и корневой каталог вашего сайта. acme.sh автоматически сгенерирует файл проверки, поместит его в корневой каталог и завершит процесс проверки. После этого файл проверки будет автоматически удален без каких-либо побочных эффектов.
如果你用的 apache服务器,acme.sh 还可以智能的从 apache的配置中自动完成验证,你不需要指定网站根目录:

acme.sh --issue -d boxpu.com --boxpu.com

Если вы используете Сервер, или антигенерация, acme.sh Вы также можете автоматически завершить проверку из конфигурации nginx, вам не нужно указывать корневой каталог сайта:

acme.sh --issue -d boxpu.com --nginx

Примечание: Независимо от того, используете ли вы Apache или Nginx, acme.sh восстановит вашу конфигурацию до предыдущего состояния после завершения процесса проверки. Это значит, что вам не нужно беспокоиться о повреждении конфигурации.
У этой конфигурации есть недостаток: вам необходимо самостоятельно настроить SSL-сертификат. В противном случае вы сможете только успешно сгенерировать сертификат, но ваш сайт по-прежнему не сможет получить доступ к https. Однако из соображений безопасности вам следует вручную изменить конфигурацию самостоятельно.
Если вы еще не запустили ни одной веб-службы и порт 80 свободен, acme.sh может выдавать себя за веб-сервер и временно прослушивать порт 80 для завершения проверки:

acme.sh --issue -d boxpu.com --standalone

Для более расширенного использования см.: https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

DNS-метод

Преимущество этого метода в том, что вам не нужен никакой сервер или публичный IP-адрес, для завершения проверки вам нужны только записи разрешения DNS.
Недостатком этого метода является то, что если вы одновременно не настроите API автоматического DNS, acme.sh не сможет автоматически продлевать сертификат с помощью этого метода, и вам придется каждый раз вручную повторно анализировать и проверять принадлежность доменного имени.

Подать заявку на сертификат с использованием DNS

cd /root/.acme.sh acme.sh --issue -d *.boxpu.com -d boxpu.com --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

Измените DNS и измените запись хоста на стороне управления NS.

Сгенерировать сертификат с использованием DNS

Получите бесплатный wildcard-сертификат домена от Let's Encrypt. После завершения разрешения DNS выполните следующую команду для повторной генерации сертификата:

acme.sh --renew -d *.boxpu.com -d boxpu.com --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

Обратите внимание, что во второй раз он используется --обновить

DNS API

Настоящая сила метода DNS заключается в том, что вы можете использоватьAPI, предоставляемый поставщиком, автоматически добавляет записи txt для завершения проверки.
acme.sh в настоящее время поддерживает 、dnspod、cloudxns、 И автоматическая интеграция десятков парсеров, таких как ovh.
Если взять в качестве примера dnspod, вам сначала нужно войти в свою учетную запись dnspod и сгенерировать свой API-идентификатор и API-ключ, оба из которых бесплатны.

export DP_Id="xxxxxxxxxxx" export DP_Key="xxxxxxxxxxxxxx" acme.sh --issue --dns dns_dp -d boxpu.com -d boxpu.com

Сертификат будетУказанные здесь API ID и API-ключ будут автоматически записаны. Вам не нужно будет указывать их снова при использовании API DNSPod в будущем. Просто сгенерируйте их напрямую:

acme.sh --issue -d boxpu.com --dns dns_dp

Более подробное использование API: https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md

Использование сертификатов TLS/SSL

Установка сертификата TLS/SSL

После того как сертификат сгенерирован, его необходимо скопировать туда, где он вам действительно нужен.

Обратите внимание, что сертификаты, сгенерированные по умолчанию, размещаются в установочном каталоге: ~/.acme.sh/. Не используйте файлы из этого каталога напрямую.
Например: не используйте следующий файл непосредственно в файле конфигурации nginx/apache.
Файлы здесь предназначены только для внутреннего использования, и структура каталогов может измениться. Правильный способ использования — использовать команду --installcert и указать целевое расположение, и файлы сертификатов будут скопированы в соответствующее расположение, например:

acme.sh --installcert -d boxpu.com \ --key-file /etc/nginx/ssl/uzbox.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd "systemctl force-reload nginx"

Установка SSL-сертификата на сервер Nginx

Например, в стандартной конфигурации Nginx рекомендуемый сгенерированный файл сертификата — fullchain.cer, а файл закрытого ключа — boxpu.com.key.

Настройте ssl_certificate в Nginx на использование fullchain.cer вместо .cer. В противном случае тест SSL Labs выдаст ошибку Chain Issues Incomplete.
Путь сертификата, сгенерированный выше, — /www/server/panel/vhost/cert/boxpu.com/;
Измените файл конфигурации Nginx

сервер { прослушивать 443; имя_сервера boxpu.com; ssl вкл; корневой html; индекс index.html index.htm; ssl_certificate /www/server/panel/vhost/cert/boxpu.com/fullchain.cer; ssl_certificate_key /www/server/panel/vhost/cert/boxpu.com/clsn.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers вкл; местоположение / { корневой html; индекс index.html index.htm; } }

Перезапустите nginx и загрузите новую конфигурацию.

systemctl принудительная перезагрузка nginx

Примечание: Здесь используется команда systemctl force-reload nginx, а не systemctl reload nginx. Команда reload не перезагружает сертификат, поэтому используется force-reload.

Продление сертификата

Обновление сертификата

Действующий сертификат действителен в течение 90 дней и будет выдан через 60 дней.Автоматическое продление, вам не нужно ничего делать. Всё происходит автоматически, вам не нужно беспокоиться об истечении срока действия сертификата.

Обновления acme.sh

В настоящее время из-за частых обновлений протокола acme и центра сертификации letsencrypt, acme.sh также часто обновляется для синхронизации.
Обновите acme.sh до последней версии:

acme.sh --upgrade
Если вы не хотите обновляться вручную, вы можете включить автоматическое обновление:
acme.sh --upgrade --auto-upgrade
После этого acme.sh будет автоматически обновляться. Вы также можете отключить автоматическое обновление в любое время:
acme.sh --upgrade --auto-upgrade 0
Ссылки
счет

Ответить

Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены *