We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Построение собственного PKI и автоматизированное управление сертификатами с OpenSSL и Certbot в Termux

Создание и автоматическое управление собственной инфраструктурой открытых ключей (PKI) на Android устройстве с использованием Termux, OpenSSL и Certbot. Безопасность, конфиденциальность, и контроль над своими сертификатами.

В современном цифровом мире, безопасность данных и конфиденциальность коммуникаций становятся все более важными. Инфраструктура открытых ключей (PKI) играет ключевую роль в обеспечении этих аспектов. В этой статье мы рассмотрим, как построить собственную, простую PKI и автоматизировать управление сертификатами прямо на вашем Android-устройстве, используя Termux, OpenSSL и Certbot. Данное руководство предоставит вам контроль над своими сертификатами и позволит создавать безопасные соединения для различных целей, избегая зависимости от сторонних удостоверяющих центров (УЦ) в определенных сценариях.

Необходимые инструменты

Для начала работы вам потребуется:

  • Android-устройство с установленным Termux.
  • Некоторое время и терпение.

Убедитесь, что Termux установлен и настроен. Обновите пакеты:

pkg update && pkg upgrade

Затем установим необходимые пакеты:

pkg install openssl certbot python3 python3-pip

Создание корневого удостоверяющего центра (CA)

Первым шагом является создание корневого CA. Это будет доверенная основа нашей PKI. Создадим директорию для хранения файлов CA:

mkdir ~/ca && cd ~/ca

Создадим файл конфигурации OpenSSL для CA (ca.cnf):

cat > ca.cnf << EOF
[ ca ]
default_ca = CA_default

[ CA_default ]
dir = .
datacopy = true

crl_dir = crl
crl = crl.pem

db = db
new_certs_dir = newcerts
certificate = ca.crt
private_key = ca.key
serial = serial
EOF

Инициализируем базу данных PKI:

openssl ca -create -config ca.cnf -md sha256 -days 3650

Теперь создадим корневой сертификат:

openssl ca -cert ca.crt -key ca.key -config ca.cnf -md sha256 -days 3650 -selfsign

Создание сертификата сервера

Теперь создадим сертификат для сервера. Сначала создадим ключ:

openssl genrsa -out server.key 2048

Создадим запрос на подпись сертификата (CSR):

openssl req -new -key server.key -out server.csr -config ca.cnf

Подпишем сертификат с помощью корневого CA:

openssl ca -cert ca.crt -key ca.key -config ca.cnf -md sha256 -days 365 -notext -in server.csr -out server.crt

Автоматизация с Certbot (Let's Encrypt) - Ограничения в Termux

Хотя Certbot обычно используется для получения сертификатов от Let's Encrypt, его прямое использование в Termux имеет ограничения из-за специфики Android и отсутствия полноценной поддержки веб-серверов, необходимых для проверки владения доменом (например, Apache или Nginx). Тем не менее, можно использовать Certbot для создания сертификатов для локальных целей, используя опцию --manual и создавая временный веб-сервер в Termux для проверки.

Важно: Этот подход больше подходит для тестирования или локальных сетей. Для публичных веб-сайтов рекомендуется использовать стандартный процесс Certbot с веб-сервером, развернутым на полноценном сервере.

Пример (требует настройки временного веб-сервера в Termux):

certbot certonly --manual --preferred-challenges dns -d example.com

Вам потребуется следовать инструкциям Certbot для подтверждения владения доменом (обычно путем добавления TXT записи в DNS).

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

Теперь у вас есть корневой сертификат (ca.crt) и сертификат сервера (server.crt) с соответствующим приватным ключом (server.key). Вы можете использовать их для различных целей, например, для шифрования трафика между клиентом и сервером, для аутентификации пользователей и т.д.

Заключение

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

Если вам требуется помощь в настройке более сложных PKI, обеспечении безопасности ваших систем или проведении аудита безопасности, обратитесь к экспертам РыбинскЛАБ. Мы предлагаем широкий спектр услуг в области информационной безопасности.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект