Генерация сертификатов для компонентов Smart Monitor
На этом этапе создаются новые сертификаты для всех узлов и сервисов системы, обеспечивающих защищённое соединение.
Основные требования
- 
Используется корневой сертификат ca-cert.pemи соответствующий приватный ключca-key.pemдля подписи новых сертификатов или один из промежуточных центров сертификации. В примерах дальше будет использоваться корневой сертификат
- 
Каждый сертификат должен включать необходимые расширения: - 
Subject Alternative Name (SAN), включающий все IP адреса и DNS имена соответствующего компонента SM 
- 
Key Usage: critical Digital Signature, Key Encipherment 
- 
Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication 
 
- 
- 
Сертификаты генерируются отдельно для каждого узла и компонента Smart Monitor 
Условные обозначения
$PATH_NEW_NODE_KEY – путь до нового приватного ключа
$PATH_NEW_NODE_CERT_CSR – путь до Certificate Signing Request (CSR)
$PATH_OPENSSL_CONFIG – путь до конфигурационного файла для OpenSSL
$PATH_CLIENT_CA – путь до корневых сертификатов инфраструктуры
Шаги генерации сертификатов
1. Подготовка
Перед началом генерации убедитесь, что у вас есть корневой сертификат (например, ca-cert.pem) и соответствующий приватный ключ (например, ca-key.pem).
2. Создание конфигурационного файла для OpenSSL
Создайте файл $PATH_OPENSSL_CONFIG/openssl.cnf и укажите в нем параметры SAN и другие настройки, изменяя значения DNS и IP для каждого узла.
[ req ]
default_bits        = 2048
default_md          = sha256
distinguished_name  = req_distinguished_name
req_extensions      = req_ext
[ req_distinguished_name ]
countryName         = Country Name (2 letter code)
countryName_default = RU
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Moscow
localityName        = Locality Name (eg, city)
localityName_default = Moscow
organizationName    = Organization Name (eg, company)
organizationName_default = Test Organization
commonName          = Common Name (e.g. server FQDN or YOUR name)
commonName_default  = smos-node-name
[ req_ext ]
subjectAltName      = @alt_names
keyUsage            = critical, digitalSignature, keyEncipherment
extendedKeyUsage    = serverAuth, clientAuth
[ alt_names ]
DNS.1 = <DNS_ПЕРВОЕ_ИМЯ_УЗЛА>
IP.1  = <IP_ДОПОЛНИТЕЛЬНЫЙ_УЗЛА>
DNS.2 = <DNS_ВТОРОЕ_ИМЯ_УЗЛА>
IP.2 = <IP_ДОПОЛНИТЕЛЬНЫЙ_УЗЛА>
3. Генерация сертификатов для каждого узла (Master, Hot-Data, Cold-Data, OSD, Logstash, SBM, SB)
Для каждого узла выполните следующие команды:
- Создание приватного ключа:
openssl genpkey -algorithm RSA -out $PATH_NEW_NODE_KEY/node-key.pem -pkeyopt rsa_keygen_bits:2048
- Создание запроса на сертификат (CSR):
openssl req -new -key $PATH_NEW_NODE_KEY/node-key.pem -out $PATH_NEW_NODE_CERT_CSR/node-cert.csr -config $PATH_OPENSSL_CONFIG/openssl.cnf
- Подписание CSR корневым сертификатом инфраструктуры:
openssl x509 -req -in $PATH_NEW_NODE_CERT_CSR/node-cert.csr -CA $PATH_CLIENT_CA/ca-cert.pem -CAkey $PATH_CLIENT_CA/ca-cert.key -CAcreateserial -out $PATH_NEW_NODE_CERT_PEM/node-cert.pem -days 1095 -extensions req_ext -extfile $PATH_OPENSSL_CONFIG/openssl.cnf
- Проверка созданного сертификата:
openssl x509 -in $PATH_NEW_NODE_CERT_PEM/node-cert.pem -text -noout
Убедитесь, что в сертификате присутствуют:
- 
SAN (Subject Alternative Name) 
- 
keyUsage(назначение ключа)
- 
extendedKeyUsage(расширенное использование ключа, если требуется)