1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/neilpang-acme.sh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

An ACME Shell script: acme.sh

FreeBSD OpenBSD NetBSD MacOS Ubuntu Windows Solaris DragonFlyBSD

Shellcheck PebbleStrict DockerHub

Join the chat at https://gitter.im/acme-sh/Lobby Docker stars Docker pulls

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

Это, вероятно, самый простой и умный сценарий оболочки для автоматической выдачи и обновления бесплатных сертификатов.

Wiki: https://github.com/acmesh-official/acme.sh/wiki

Для поклонников Docker: acme.sh :two_hearts: Docker

Twitter: @neilpangxa

中文说明

Who: — FreeBSD.org — ruby-china.org — Proxmox — pfsense — webfaction — Loadbalancer.org — discourse.org — Centminmod — splynx — и другие. # Tested OS

Статус Платформа
1 MacOS Mac OSX
2 Windows Windows (cygwin с curl, openssl и crontab включены)
3 FreeBSD FreeBSD
4 Solaris Solaris
5 Ubuntu Ubuntu
6 NA pfsense
7 OpenBSD OpenBSD
8 NetBSD NetBSD
9 DragonFlyBSD DragonFlyBSD
10 Linux Debian
11 Linux CentOS
12 Linux openSUSE
13 Linux Alpine Linux (с curl)
14 Linux Archlinux
15 Linux Fedora
16 Linux Kali Linux
17 Linux Oracle Linux
18 Linux Mageia
19 Linux Gentoo Linux
20 Linux ClearLinux
21 ——— Cloud Linux https://github.com/acmesh-official/acme.sh/issues/111
22 ——— OpenWRT: протестировано и работает. См. wiki

https://github.com/acmesh-official/acme.sh/wiki/How-to-run-on-OpenWRT |23|| Proxmox: See Proxmox VE Wiki. Version 4.x, 5.0, 5.1, version 5.2 and up

Проверьте наш проект по тестированию:

https://github.com/acmesh-official/acmetest

  • Поддерживаемые центры сертификации (CA):

    • ZeroSSL.com CA (по умолчанию);
    • Letsencrypt.org CA;
    • BuyPass.com CA;
    • SSL.com CA;
    • Google.com Public CA;
    • Pebble strict Mode;
    • Любой другой центр сертификации, совместимый с RFC8555.
  • Поддерживаемые режимы:

    • Webroot mode;
    • Standalone mode;
    • Standalone tls-alpn mode;
    • Apache mode;
    • Nginx mode;
    • DNS mode;
    • Режим DNS alias;
    • Stateless mode.

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

  1. Установка онлайн:

Проверьте этот проект: https://github.com/acmesh-official/get.acme.sh

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

Или:

wget -O -  https://get.acme.sh | sh -s email=my@example.com
  1. Или установите из git:

Клонируйте этот проект и запустите установку:

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

Вам не обязательно быть root, хотя это рекомендуется.

Подробная информация об установке: https://github.com/acmesh-official/acme.sh/wiki/How-to-install

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

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

Пример записи в cron:

0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null

После установки необходимо закрыть текущий терминал и открыть его снова, чтобы псевдоним вступил в силу.

Теперь вы готовы выдавать сертификаты.

Показать справочное сообщение:

root@v1:~# acme.sh -h

2. Просто выдайте сертификат

Пример 1: Один домен.

acme.sh --issue -d example.com -w /home/wwwroot/example.com

или:

acme.sh --issue -d example.com -w /home/username/public_html

или:

acme.sh --issue -d example.com -w /var/www/html

Пример 2: Несколько доменов в одном сертификате.

acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com

Параметр /home/wwwroot/example.com или /home/username/public_html или /var/www/html — это папка веб-корня, где вы размещаете файлы своего веб-сайта. У вас ДОЛЖЕН быть доступ на запись к этой папке.

Второй аргумент «example.com» — основной домен, для которого вы хотите выдать сертификат. У вас должен быть хотя бы один домен.

Вы должны указать и привязать все домены к одной и той же папке веб-корня: /home/wwwroot/example.com.

Сертификаты будут размещены в ~/.acme.sh/example.com/

Срок действия сертификатов будет автоматически продлён каждые 60 дней.

Дополнительные примеры: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

3. Установите сертификат на Apache/Nginx и т. д.

После создания сертификата вы, вероятно, захотите установить/скопировать сертификат на свои серверы Apache/Nginx или другие. Вы ДОЛЖНЫ использовать эту команду для копирования сертификатов в целевые файлы, НЕ используйте файлы сертификатов в папке ~/.acme.sh/, они предназначены только для внутреннего использования, структура папок может измениться в будущем.

Apache пример:

acme.sh --install-cert -d example.com \
--cert-file **Использование DNS в ручном режиме:**

См.: https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode сначала.

Если ваш поставщик DNS не поддерживает доступ к API, вы можете добавить запись TXT вручную.
```bash
acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com

Вы должны получить вывод, подобный следующему:

Добавьте следующую запись TXT:
Domain:_acme-challenge.example.com
Txt value:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c

Добавьте следующую запись TXT:
Domain:_acme-challenge.www.example.com
Txt value:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Пожалуйста, добавьте эти записи TXT в домены. Ожидание эффекта от DNS.

Затем просто перезапустите с аргументом renew:

acme.sh --renew -d example.com

Хорошо, готово. Будьте осторожны, это режим DNS вручную, он не может быть продлён автоматически. Вам придётся добавлять новую запись TXT в свой домен вручную при продлении сертификата. Пожалуйста, используйте режим API DNS вместо этого.

Выпуск сертификатов ECC

Let's Encrypt теперь может выдавать сертификаты ECDSA. И мы их тоже поддерживаем! Просто установите параметр keylength с префиксом ec-. Например:

Сертификат ECC для одного домена

acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256

Многодоменный сертификат SAN ECC

acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256

Посмотрите на параметр keylength, указанный выше. Допустимые значения:

  1. ec-256 (prime256v1, «ECDSA P-256»)
  2. ec-384 (secp384r1, «ECDSA P-384»)
  3. ec-521 (secp521r1, «ECDSA P-521», который пока не поддерживается Let's Encrypt.)

Как выпустить сертификаты с подстановочными знаками Это просто, просто укажите домен с подстановочным знаком в качестве параметра -d.

acme.sh  --issue -d example.com  -d '*.example.com'  --dns dns_cf

Как продлить сертификаты Нет, вам не нужно продлевать сертификаты вручную. Все сертификаты будут автоматически продлеваться каждые 60 дней. Однако вы также можете принудительно продлить сертификат:

acme.sh --renew -d example.com --force

или для сертификата ECC:

acme.sh --renew -d example.com --force --ecc

Как остановить продление сертификата Чтобы остановить продление сертификата, вы можете выполнить следующее, чтобы удалить сертификат из списка продления:

acme.sh --remove -d example.com [--ecc]

Сертификат/файл ключа не удаляется с диска. Вы можете удалить соответствующий каталог (например, ~/.acme.sh/example.com) самостоятельно. Как обновить acme.sh acme.sh находится в постоянном развитии, поэтому настоятельно рекомендуется использовать последнюю версию кода. Вы можете обновить acme.sh до последней версии кода:

acme.sh --upgrade

Вы также можете включить автоматическое обновление:

acme.sh --upgrade --auto-upgrade

Тогда acme.sh будет постоянно обновляться автоматически. Отключите автоматическое обновление:

acme.sh --upgrade --auto-upgrade 0

Как выдать сертификат на основе существующего CSR https://github.com/acmesh-official/acme.sh/wiki/Issue-a-cert-from-existing-CSR Отправка уведомлений в cronjob https://github.com/acmesh-official/acme.sh/wiki/notify Под капотом Говорите на языке ACME, используя оболочку, напрямую с «Let's Encrypt». TODO: Благодарности

  1. Acme-tiny: https://github.com/diafygi/acme-tiny
  2. ACME протокол: https://github.com/ietf-wg-acme/acme

Вкладчики

Вкладчики кода

Этот проект существует благодаря всем людям, которые вносят свой вклад.

Финансовые вкладчики

Станьте финансовым вкладчиком и помогите нам поддерживать наше сообщество. [Внести вклад]

Отдельные лица

Организации

Поддержите этот проект своей организацией. Ваш логотип появится здесь с ссылкой на ваш веб-сайт. Вклад

Спонсоры

quantumca-acmesh-logo

19. Лицензия и прочее

Лицензия — GPLv3.

Пожалуйста, ставьте звёзды и форкайте меня.

Проблемы и запросы на вытягивание приветствуются.

20. Пожертвования

Ваши пожертвования делают acme.sh лучше:

  1. PayPal/Alipay(支付宝)/Wechat(微信): https://donate.acme.sh/

Список пожертвований

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Сценарий оболочки ACME, клиент certbot: acme.sh Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/neilpang-acme.sh.git
git@api.gitlife.ru:oschina-mirror/neilpang-acme.sh.git
oschina-mirror
neilpang-acme.sh
neilpang-acme.sh
master