2 hours ago
Фигачим самоподписные сертификаты!
Обновите установленные в системе пакеты с помощью консольной команды:
sudo apt update && sudo apt -y upgrade
Установите OpenSSL, введя команду:
sudo apt install openssl
Создайте каталог, куда вы бы хотели сохранить созданные сертификаты с помощью команды mkdir (например, mkdir /home/$USER/cert).
Перейдите в ранее созданный каталог с помощью команды cd (например, cd /home/$USER/cert).
Выполните следующую команду:
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
где:
-x509— уточнение, что нам нужен именно самоподписанный сертификат;-newkey— автоматическое создание ключа сертификата;-days— срок действия сертификата в днях;-keyout— путь (если указан) и имя файла ключа;-out— путь (если указан) и имя файла сертификата.
В каталоге /home/$USER/cert сгенерируются 2 файла:
certificate.crt— сам сертификат;privateKey.key— файл ключа.
Инструкция по созданию сертификатов с mkcert для использования на нескольких устройствах
Основная идея
- На главном компьютере создаем CA (Certificate Authority)
- Экспортируем корневой сертификат CA
- Переносим и устанавливаем этот CA на другие устройства
- Генерируем сертификаты для доменов на главном компьютере
- Используем одни и те же сертификаты на всех устройствах
Пошаговая инструкция:
Шаг 1: Установка mkcert на главном компьютере
Windows (Chocolatey)
choco install mkcert
macOS
brew install mkcert
Linux (Ubuntu/Debian)
sudo apt install libnss3-tools
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"
chmod +x mkcert-v*-linux-amd64
sudo mv mkcert-v*-linux-amd64 /usr/local/bin/mkcert
Linux (через go)
go install filippo.io/mkcert@latest
Шаг 2: Создаем локальный Certificate Authority (CA)
mkcert -install
Проверьте, что CA создан. Сертификат CA будет находится в:
- Windows:
%LocalAppData%\mkcert\rootCA.pem - macOS:
~/Library/Application Support/mkcert/rootCA.pem - Linux:
~/.local/share/mkcert/rootCA.pem
Шаг 3: Экспортируем корневой сертификат CA
Найдите корневой сертификат и экспортируйте в различных форматах:
-
Копирование файла Находим файл
rootCA.pem или rootCA-key.pem. -
Экспорт PKCS#12 (если нужно)
openssl pkcs12 -export -out rootCA.p12 -inkey rootCA-key.pem -in rootCA.pem
Шаг 4: Установка корневого сертификата на других устройствах
Вариант A: Ручная установка на каждое устройство
Windows (принимающем устройстве)
- Скопируйте
rootCA.pemна устройство. - Переименуйте в
rootCA.crt. - Дважды щелкните на файле и выберите "Установить сертификат".
- Выберите "Текущий пользователь" или "Локальный компьютер".
- Поместите в "Доверенные корневые центры сертификации".
macOS:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain rootCA.pem
Linux (Chrome/Firefox):
sudo cp rootCA.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
# Для Firefox отдельно
certutil -A -n "mkcert CA" -t "C,," -i rootCA.pem -d sql:$HOME/.mozilla/firefox/*.default
Android:
- Скопируйте
rootCA.pemна телефон какrootCA.crt. - Откройте Настройки → Безопасность → Шифрование и учетные данные.
- "Установить сертификат" → "CA-сертификат".
- Выберите файл.
iOS:
- Отправьте
rootCA.pemна устройство (почта, AirDrop). - Откройте файл на iPhone/iPad.
- Нажмите "Установить" в профиле сертификата.
- Перейдите в Настройки → Основные → Профили VPN и управление устройством.
- Нажмите "Установить" для корневого сертификата.
- Включите доверие в Настройках → Основные → Об этом устройстве → Доверенные сертификаты.
Вариант B: Автоматизация через скрипт
Создайте скрипт install_ca.sh (для Linux/macOS):
#!/bin/bash
CA_CERT="rootCA.pem"
CA_NAME="mkcert Local CA"
sudo cp "$CA_CERT" /usr/local/share/ca-certificates/mkcert-ca.crt
if command -v update-ca-certificates &> /dev/null; then
sudo update-ca-certificates
fi
cp "$CA_CERT" ~/.mozilla/firefox/*.default/
Шаг 5: Генерация сертификатов на главном компьютере
mkcert example.com '*.example.com'
Шаг 6: Перенесите сгенерированные сертификаты и ключи на другие устройства
Шаг 7: Проверка
После установки корневого сертификата на всех устройствах:
- Настройте DNS или hosts файлы.
- Откройте в браузере
https://example.com.
Таким образом, вы создаете централизованную инфраструктуру PKI для локальной разработки, где один CA сертификат устанавливается на все устройства, а все сервисы используют сертификаты, подписанные этим CA.