Let`s Encrypt logo

JustEncrypt

Бесплатные SSL-сертификаты Let`s Encrypt

Требования

Для работы панели требуется PHP версии 5.4 и выше. Рекомендуемая версия PHP 5.6. На PHP 5.3 и ниже панель работать не будет из-за использования возможностей которые появились начиная с версии 5.4. Также требуются следующие модули PHP: curl, date, fileinfo, filter, hash, json, mbstring, mcrypt, openssl, PDO, pdo_sqlite, SimpleXML, zip. Все эти модули есть на большинстве современных LAMP-серверов. Панель обязательно должна устанавливаться на корневой URI домена. В URI панели не допускается директория, например не получится использовать панель по адресу http://mysite.ru/sslpanel/. Вы можете использовать для панели отдельный поддомен, например http://sslpanel.mysite.ru/. Ограничений на ОС нет, работа панели проверялась под Windows/Linux/FreeBSD.

Внутреннее устройство

Файлы панели разбиты на три директории:
static_priv - по большей части здесь находится php-код панели. Это статическая директория, файлы внутри ней не должны меняться ни при каких условиях. Доступ к директории извне не допускается.
static_pub - это корневая директория вашего сайта. Файлы этой директории в свободном доступе любому посетителю сайта. Директория статическая, файлы внутри неё изменяться не должны.
userdata - в этой директории находится всё, что разрешено менять пользователю, а именно: логи, база данных, конфиги, временные файлы. Доступ к директории извне категорически запрещён, так как в ней хранятся пароли от ваших SSH-серверов.
Логи могут записываться в следующие файлы: debug.log, info.log, error.log, security.log. Если лог-файл отсетствует - значит ещё не приходилось в него что-либо записывать. Содержимое debug.log записывается только если в файле config.php параметр DEBUG имеет значение true.
База данных находится в файле db.sqlite. Пароли и ключи доступа к вашим SSH-серверам хранятся в этом файле и шифруются алгоритмом AES 256. Ключ шифрования находятся в файле config.php, константа SALT_PRIV. Если файл db.sqlite отсутствует то считается, что панель не установлена.
Если вы делаете бэкапы то они сохраняются в директорию backups. В целях безопасности из веб-интерфейса можно сделать бэкап, но нельзя его скачать.
Экспортёр - это компонент панели позволяющий выполнять выгрузку сертификата на сервер. На данный момент панель имеет два экспортёра: nginx и apache.
Взаимодействие с удостоверяющим центром Let`s Encrypt осуществляется напрямую, по протоколу ACME. Какие-либо LE-специфичные компоненты (например certbot, acme.sh) в панели не используются.

Обновления и версии

Версия панели состоит из трёх чисел. Первое может измениться только при появлении принципиально новой панели, с большими изменениями в архитектуре. Второе число означает существенное изменение, например появление новой возможности. Третье число означает незначительные изменения, в частности багфиксы. При обнаружении ошибки прежние версии не меняются и выпускается новая версия.

Обновление панели делается следующим путём: создаётся бэкап -> устанавливается новая версия панели -> в свежеустановленную панель делается импорт бэкапа. Не обновляйте панель без явной необходимости, это потенциально проблемный процесс. Перед обновлением, помимо бэкапа, обязательно создайте архив с файлами вашей панели (static_priv, static_pub, userdata) - это поможет вам в случае проблем с новой панелью.

Рекомендации

Вы должны понимать, что хранение доступов к большому количеству серверов в одном месте должно обеспечиваться высоким уровнем безопасности. По возможности старайтесь использовать SSH-аккаунты с минимумом привилегий. Устанавливайте панель на сервер в безопасности которого вы уверены. Не рекомендуется оставлять панель в открытом доступе для всего интернета. Настоятельно рекомендуется использовать https для доступа в панель. Если доступ в панель осуществляется через интернет - можно "накрыть" панель basic-авторизацией средствами вашего веб-сервера. Крайне не рекомендуется использовать для панели shared-хостинг и серверы с большим количеством пользователей.