Бөлісу құралы:


Настройка сертификата шифрования и шифрование секретов в кластерах Linux

В этой статье описывается, как настроить сертификат шифрования и использовать его для шифрования секретов в кластерах Linux. Инструкции для кластеров Windows приведены в разделе Настройка сертификата шифрования и шифрование секретов в кластерах Windows.

Получение сертификата шифрования данных

Сертификат шифрования данных используются исключительно для шифрования и расшифровки параметров в файле Settings.xml службы и переменных среды в ее файле ServiceManifest.xml. Он не применяется для аутентификации или подписывания зашифрованного текста. Сертификат должен отвечать приведенным ниже требованиям.

  • Сертификат должен содержать закрытый ключ.

  • Использование ключа сертификата должно включать шифрование данных (10) и не должно включать аутентификацию сервера или клиента.

    Например, для создания требуемого сертификата с помощью OpenSSL можно использовать следующие команды.

    user@linux:~$ openssl req -newkey rsa:2048 -nodes -keyout TestCert.prv -x509 -days 365 -out TestCert.pem
    user@linux:~$ cat TestCert.prv >> TestCert.pem
    

Установка сертификата в кластере

Этот сертификат должен быть установлен в папке /var/lib/sfcerts на каждом узле в кластере. У учетной записи пользователя, с помощью которой выполняется служба (по умолчанию — sfuser), должен быть доступ на чтение к установленному сертификату (то есть /var/lib/sfcerts/TestCert.pem в текущем примере).

Шифрование секретов

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

user@linux:$ echo "Hello World!" > plaintext.txt
user@linux:$ iconv -f ASCII -t UTF-16LE plaintext.txt | tr -d '\n' > plaintext_UTF-16.txt
user@linux:$ openssl smime -encrypt -in plaintext_UTF-16.txt -binary -outform der TestCert.pem | base64 > encrypted.txt

Результирующая строка в кодировке Base-64 в файле encrypted.txt содержит как зашифрованные данные секрета, так и сведения о сертификате, с помощью которого выполнено шифрование. Можно проверить его действительность, расшифровав его с помощью OpenSSL.

user@linux:$ cat encrypted.txt | base64 -d | openssl smime -decrypt -inform der -inkey TestCert.prv

Следующие шаги

Узнайте, как указать зашифрованные секреты в приложении.