Главные темы ► linux ► security ► openssl ► Саздание сертификатов SSL (TLS) для сайта
Теги: security openssl ssl rsa

Саздание сертификатов SSL (TLS) для сайта

Саздание сертификатов SSL (TLS) для сайта

    Генерация корневого приватного ключа
    openssl genpkey -algorithm RSA -out rootCA.key

    -out используется для вывода ключа в файл
    Использование дополнительных параметров шифрования, AES 128 бит и дополнительный пароль шифрования:

    openssl genpkey -algorithm RSA -out rootCA.key -aes-128-cbc -pass pass:test

    Список алгоритмов шифрования можно получить командой:
    man enc
    По умолчанию при генерации ключа используется 2048 бит, это число можно изменить дополнительным параметром команды:

    openssl genpkey -algorithm RSA -out rootCA.key -pkeyopt rsa_keygen_bits:4096
    Создание самодписанного корневого сертификата CA:

    Данный сертификат (rootCA.crt) генерируется на основе уже созданного корневого ключа: rootCA.key

    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt

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

    Создать приватный ключ для сертификата web-сервера
    openssl genpkey -algorithm RSA -out mydomain.com.key
    Создать файл csr-запрос на получение сертификата и подпись CA

    На основе приватного(закрытого) ключа можно отправить Certificate Signing Request (CSR) - запрос на подпись в центр сертификации. Этот файл содержит публичный(открытый) ключ подписанный соответствующим ему закрытым ключом и другую информацию узла(отличительные признаки).
    Создание CSR требует вводить в интерактивном режиме отличительные признаки сертификата(домен, страна, почта ...). Чтобы не оставлять поле пустым, необходимо оставить хотябы точку.
    При генерации CSR необходимо указать common name доменное имя для которого создается сертификат.

    openssl req -new -key mydomain.com.key -out mydomain.com.csr

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

    openssl req -new -sha256 -key mydomain.com.key -subj "/C=US/ST=CA/O=MyOrg, Inc./CN=mydomain.com" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:mydomain.com,DNS:www.mydomain.com")) -out mydomain.com.csr
    Проверка запроса csr

    Может понадобиться перед отправкой на подпись в CA

    openssl req -in mydomain.com.csr -noout -text
    Создание сертификата

    1.У меня есть CA(центр сертификации или самоподписанный сертификат) и его корневой приватный ключ(закрытый ключ)
    2.Есть приватный ключ сервера и созданный на его основе csr(mydomain.com) файл.
    Отправить запрос созданный csr на подпись в CA и получить .crt для сервера.

    openssl x509 -req -in mydomain.com.csr -CA ../rootCA.crt -CAkey ../rootCA.key -CAcreateserial -out mydomain.com.crt -days 500 -sha256
    Подытожим

    rootCA.key — закрытый(приватный ключ) CA(Центра Сертификации)
    rootCA.crt — открытый(публичный) корневой сертификат CA(Центра Сертификации) — должен быть установлен на всех клиентах
    mydomain.com.key — приватный ключ веб-сайта, храниться на web-сервере.
    mydomain.com.csr — запрос(csr) на подпись сертификата
    mydomain.com.crt — публичный сертификат сайта

    Продолжение

    Проверить валидность сертификата для домена можно здесь: https://www.ssllabs.com/ssltest/analyze.html?d=netbash.ru

    Создание CSR из существующего сертификата
    openssl x509 -req -in mydomain.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out mydomain.com.crt -days 500 -sha256
    Источники
    Последнее изменение: October 7, 2024 15:28


    Редактировать


    test

    2025-12-31 23:09:00 Редактировать

    test

    2025-12-31 23:10:00 Редактировать

    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ
    Loading…
    Loading the web debug toolbar…
    Attempt #