Обозреватель хранилища ключей, как использовать
Обновлено: 21.11.2024
Следующая статья предназначена для пользователей, использующих сервер Apache Tomcat, подписывающих приложения Java и работающих с клавишами Java в целом.
Примечание. Создание CSR для подписи кода аналогично созданию сертификата сервера. Обычное имя — это название вашей организации.
Создайте хранилище ключей и пару ключей
Эта команда создает новое хранилище ключей и пару ключей, которые вы используете для создания запроса на сертификат. keytool -genkey -alias test -keyalg RSA -keystore test.jks -keysize 3072 Затем вам будет предложено ввести пароль хранилища ключей и указать его. Введенные данные будут соответствовать данным в CSR:
Какие у вас имя и фамилия?
[Неизвестно]: Тест Тест
Как называется ваше организационное подразделение?
[Неизвестно]: Подразделение
Как называется ваша организация?
[Неизвестно]: Test corp.
Как называется ваш город или местность?
[Неизвестно]: Какой-то город
Как называется ваш штат или провинция?
[Неизвестно]: Some State
Какой двухбуквенный код страны у этого устройства?
[Неизвестно]: США
Правильно ли CN=Test Test, OU=Unit, O=Test corp., L=Some City, ST=Some State, C=US?
[нет]: да
Создать CSR
Чтобы создать CSR, используйте следующую команду:
keytool -certreq -alias test -keystore test.jks -file test.csr Вы ввели данные запрашивающей стороны при создании пары ключей на предыдущем шаге, поэтому keytool больше не запрашивает их.
Параметр -file test.csr используется для вывода CSR в файл. Если его не указать, CSR будет отображаться в терминале, и вы сможете скопировать его прямо в наш заказ. Затем просто дождитесь выдачи сертификата.
Импорт выданного сертификата в хранилище ключей
Вы получите выпущенный сертификат от SSLmarket по электронной почте, и его необходимо отправить в хранилище ключей.
Хранилище ключей требует, чтобы сертификат был доверенным, а выдавший центр уже присутствовал в хранилище ключей при импорте сертификатов. Это означает, что сертификаты импортируются в «обратном порядке» — от корня к серверу.
Импорт:
keytool -import -trustcacerts -alias test -file test.txt -keystore test.jks
Ошибка: не удалось установить цепочку из ответа
Ранее запрошенный CA-импорт в хранилище ключей часто вызывает ошибку keytool: java.lang.Exception: Не удалось установить цепочку из ошибки ответа. Ошибка означает, что в хранилище ключей нет выдающего CA/промежуточного сертификата.
Инструменты с графическим интерфейсом
Если вы не хотите работать с хранилищем ключей с помощью командной строки или терминала, вы можете использовать один из нескольких инструментов с графическим интерфейсом.
Обе эти программы могут создавать или открывать файл хранилища ключей, создавать CSR и импортировать повторно выпущенный сертификат (ответ ЦС). Процедура такая же, как и для терминала выше; разница заключается в графической среде, в которой вы можете это сделать.
Портекле
Portecle – это бесплатная программа на языке Java, позволяющая управлять хранилищем ключей в графической среде. Вы можете запустить его на разных платформах (Linux, MacOS, Windows).
Обозреватель хранилища ключей
KeyStore Explorer работает так же, как и предыдущая программа, а также является кросс-платформенной.
Однако логика обеих программ аналогична исходному хранилищу ключей; в результате это может не сэкономить вам много.
Сожалеем, что вы не нашли здесь нужной информации.
Пожалуйста, помогите нам улучшить эту статью. Напишите нам, что вы ожидали и не узнали.
Пара ключей содержит закрытый ключ и связанную с ним цепочку сертификатов. Пары ключей можно использовать для цифровой подписи таких объектов, как приложения Java. Записи пары ключей представлены в KeyStore Explorer следующим значком:
Поскольку часть закрытого ключа пары ключей должна оставаться секретной, записи пары ключей обычно защищены паролем. В KeyStore Explorer такие записи описываются как заблокированные, и рядом с ними отображается закрытый замок:
Чтобы получить доступ к секретному ключу, запись должна быть разблокирована (см. следующую главу), указав правильный пароль. Если запись успешно разблокирована, напротив нее отображается открытый замок:
Если запись пары ключей была разблокирована один раз во время сеанса KeyStore Explorer, ее не нужно разблокировать снова. Запись пары ключей может быть разблокирована явно или как часть операции, для которой требуется закрытый ключ.
Пара ключей должна быть разблокирована, чтобы использовать ее для таких операций, как цифровая подпись, а также для просмотра или экспорта закрытого ключа.
Разблокировать пару ключей
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Выберите Разблокировать во всплывающем меню.
- Откроется диалоговое окно «Разблокировать запись». Введите пароль записи пары ключей и нажмите кнопку OK.
- Статус блокировки записи пары ключей будет изменен на "разблокировано" в таблице "Записи хранилища ключей".
Просмотр цепочки сертификатов пары ключей
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Выберите подменю View Details во всплывающем меню, а затем выберите Certificate Chain Details. Либо дважды щелкните запись пары ключей.
- Появится диалоговое окно «Сведения о сертификате». После просмотра сведений закройте диалоговое окно, нажав кнопку ОК.
Просмотр закрытого ключа пары ключей
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Во всплывающем меню выберите подменю «Просмотр сведений», а затем выберите «Сведения о закрытом ключе».
- При необходимости отобразится диалоговое окно «Разблокировать запись». Введите пароль записи пары ключей и нажмите кнопку OK.
- Появится диалоговое окно «Сведения о закрытом ключе». После просмотра сведений закройте диалоговое окно, нажав кнопку ОК.
Просмотр открытого ключа пары ключей
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Во всплывающем меню выберите подменю «Просмотр сведений», а затем выберите «Сведения об открытом ключе».
- Появится диалоговое окно «Сведения об открытом ключе». После просмотра сведений закройте диалоговое окно, нажав кнопку ОК.
Создать пару ключей
- В меню "Инструменты" выберите "Создать пару ключей". Либо нажмите кнопку панели инструментов "Создать пару ключей":
- Откроется диалоговое окно "Создать пару ключей". Выберите алгоритм и размер ключа и нажмите кнопку ОК.
- Появится диалоговое окно «Создание пары ключей», которое будет оставаться видимым до завершения создания пары ключей. Для больших размеров ключей это может занять довольно много времени.
- Откроется диалоговое окно "Создать сертификат пары ключей".
- Выберите версию и алгоритм подписи и введите срок действия, серийный номер и имя.
- При желании для сертификата версии 3 добавьте расширения сертификата, нажав кнопку "Добавить расширения".
- Нажмите кнопку ОК.
- Откроется диалоговое окно "Новый псевдоним ввода пары ключей".
- Введите псевдоним для новой записи пары ключей и нажмите кнопку OK.
- При необходимости отобразится диалоговое окно New Key Pair Entry Password. Введите пароль для защиты новой записи пары ключей, подтвердите его и нажмите кнопку OK.
- Новая запись пары ключей появится в таблице KeyStore Entries. ол>р>
- Выберите диск и папку, в которой хранится файл ответа центра сертификации.
- Нажмите на нужный файл ответа центра сертификации или введите имя файла в текстовое поле «Имя файла».
- Нажмите кнопку "Импорт".
- Если включена проверка доверия при импорте ответа ЦС и файл ответа ЦС содержит один сертификат:
- Если KeyStore Explorer может установить доверительный путь между сертификатом и существующим самозаверяющим доверенным сертификатом в вашем хранилище ключей или в сертификатах центра сертификации, импорт продолжится. В противном случае на этом этапе произойдет сбой.
- В качестве альтернативы, если включена проверка доверия при импорте ответа ЦС и файл ответа ЦС содержит цепочку сертификатов:
- KeyStore Explorer попытается сопоставить корневой ЦС ответа с существующим доверенным сертификатом в вашем хранилище ключей или с сертификатами центра сертификации.
- Если это невозможно, откроется диалоговое окно «Сведения о сертификате», в котором будут показаны сведения о корневом сертификате ЦС ответа для проверки.
- После просмотра сведений закройте диалоговое окно, нажав кнопку ОК.
- Появится дополнительное диалоговое окно с вопросом, хотите ли вы принять сертификат.
- Нажмите кнопку «Да», если вы хотите доверять сертификату и импортировать ответ центра сертификации, и «Нет», если вы этого не хотите. Если вы ответите Нет, на этом этапе импорт завершится ошибкой.
Получить пару ключей, подписанную ЦС (центром сертификации)
- Сначала создайте новое хранилище ключей.
- Либо импортируйте существующую пару ключей в хранилище ключей, либо создайте новую пару ключей в хранилище ключей.
- Затем создайте файл CSR (запрос на подпись сертификата) из пары ключей.
- Отправьте файл CSR в центр сертификации для подписания. Каждый ЦС имеет разные процедуры подписания сертификатов и взимает плату. Подробную информацию можно найти на веб-сайте ЦС.
- ЦС отправит ответ ЦС.Скорее всего, это будет файл с расширением p7r или cer.
- Импортируйте ответ центра сертификации в исходную пару ключей.
- Пара ключей теперь подписана ЦС. Просмотрите цепочку сертификатов пары ключей. Ваш сертификат в конце цепочки будет содержать сведения о центре сертификации в поле эмитента.
- Наконец сохраните хранилище ключей.
Добавить в цепочку сертификатов
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Во всплывающем меню выберите подменю «Редактировать цепочку сертификатов» и выберите «Добавить сертификат».
- При необходимости отобразится диалоговое окно «Разблокировать запись». Введите пароль записи пары ключей и нажмите кнопку OK.
- Появится диалоговое окно "Добавить сертификат".
- Выберите диск и папку, в которой хранится добавляемый файл сертификата.
- Нажмите на нужный файл сертификата или введите имя файла в текстовое поле "Имя файла".
- Нажмите кнопку "Добавить".
- Для успешного добавления закрытый ключ выбранного сертификата должен использоваться для подписи конечного сертификата цепочки. На это указывает тот факт, что субъект выбранного сертификата идентичен издателю конечного сертификата.
- Если добавление выполнено успешно, цепочка сертификатов записи пары ключей будет обновлена, чтобы включить добавленный сертификат.
Удалить из цепочки сертификатов
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Во всплывающем меню выберите подменю «Редактировать цепочку сертификатов» и выберите «Удалить сертификат».
- При необходимости отобразится диалоговое окно «Разблокировать запись». Введите пароль записи пары ключей и нажмите кнопку OK.
- Для успешного удаления цепочка сертификатов должна содержать более одного сертификата.
- Если удаление прошло успешно, цепочка сертификатов записи пары ключей будет обновлена для удаления конечного сертификата.
Импорт пары ключей
Импорт пары ключей из PVK и сертификатов
- В меню "Инструменты" выберите "Импортировать пару ключей". Либо нажмите кнопку панели инструментов «Импорт пары ключей»:
- Появится диалоговое окно "Импортировать тип пары ключей".
- Выберите переключатель PVK и нажмите кнопку OK.
- Появится диалоговое окно «Импорт пары ключей PVK».
- Если файл закрытого ключа PVK не зашифрован, снимите флажок "Зашифрованный закрытый ключ".
- В качестве альтернативы, если файл закрытого ключа PVK зашифрован, введите пароль для дешифрования в поле Пароль для дешифрования.
- Используйте кнопки "Обзор", чтобы выбрать закрытый ключ и файлы сертификатов, и кнопки "Подробности", чтобы проверить свой выбор.
- Если после проверки вы решите импортировать пару ключей, нажмите кнопку «Импорт». В противном случае используйте кнопку "Отмена", чтобы остановить импорт.
- Откроется диалоговое окно "Новый псевдоним ввода пары ключей".
- Введите псевдоним для новой записи пары ключей и нажмите кнопку OK.
- При необходимости отобразится диалоговое окно New Key Pair Entry Password. Введите пароль для защиты новой записи пары ключей, подтвердите его и нажмите кнопку OK.
- Новая запись пары ключей появится в таблице KeyStore Entries. ол>р>
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Выберите подменю «Экспорт» во всплывающем меню и выберите «Экспорт закрытого ключа».
- При необходимости отобразится диалоговое окно «Разблокировать запись». Введите пароль записи пары ключей и нажмите кнопку OK.
- Появится диалоговое окно «Экспорт закрытого ключа».
- Выберите переключатель PVK и нажмите кнопку OK.
- Отображается диалоговое окно «Экспорт закрытого ключа как PVK».
- Выберите тип ключа обмена или подписи.
- Если экспортируемый файл закрытого ключа PVK не должен быть зашифрован, снимите флажок "Шифровать".
- В качестве альтернативы, если файл закрытого ключа PVK должен быть зашифрован, выберите уровень шифрования (сильный или слабый), а затем введите и подтвердите пароль шифрования.
- Используйте кнопку "Обзор", чтобы выбрать файл для экспорта.
- Нажмите кнопку «Экспорт», чтобы начать экспорт.
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей".Выберите подменю «Экспорт» во всплывающем меню, а затем выберите «Экспорт открытого ключа».
- Отображается диалоговое окно «Экспорт открытого ключа как OpenSSL».
- Установите флажок PEM, если экспортируемый открытый ключ должен быть закодирован PEM.
- Используйте кнопку "Обзор", чтобы выбрать файл для экспорта.
- Нажмите кнопку «Экспорт», чтобы начать экспорт.
- Щелкните правой кнопкой мыши запись "Пара ключей" в таблице "Записи хранилища ключей". Выберите «Установить пароль» во всплывающем меню.
- Появится диалоговое окно «Установка пароля для входа в пару ключей».
- Заполните поля диалогового окна старым паролем, новым паролем и подтверждением нового пароля. Если ввод пары ключей разблокирован, поле старого пароля уже будет заполнено.
- Нажмите кнопку OK, чтобы подтвердить диалоговое окно.
- Нажмите на запись пары ключей, чтобы выбрать ее.
- В меню «Правка» выберите «Вырезать». Либо нажмите кнопку панели инструментов «Вырезать»:
- При необходимости отобразится диалоговое окно «Разблокировать запись». Введите пароль записи пары ключей и нажмите кнопку OK.
- Выберите целевое хранилище ключей, нажав на его вкладку.
- В меню «Правка» выберите «Вставить». Либо нажмите кнопку на панели инструментов «Вставить»:
- Запись пары ключей появится в целевой таблице KeyStore Entries. Пароль записи пары ключей останется без изменений.
- KeyStore Explorer имеет внутренний буфер обмена для операций вырезания, копирования и вставки, называемый буфером. Поэтому записи KeyStore нельзя вырезать или копировать из KeyStore Explorer в другие приложения и наоборот.
- Нажмите на запись пары ключей, чтобы выбрать ее.
- В меню «Правка» выберите «Копировать». Либо нажмите кнопку панели инструментов "Копировать":
- При необходимости отобразится диалоговое окно «Разблокировать запись». Введите пароль записи пары ключей и нажмите кнопку OK.
- При копировании в другое хранилище ключей выберите его, щелкнув вкладку.
- В меню «Правка» выберите «Вставить». Либо нажмите кнопку на панели инструментов «Вставить»:
- Копия записи пары ключей появится в целевой таблице KeyStore Entries. Пароль записи пары ключей будет таким же, как и пароль оригинала.
- KeyStore Explorer имеет внутренний буфер обмена для операций вырезания, копирования и вставки, называемый буфером. Поэтому записи KeyStore нельзя вырезать или копировать из KeyStore Explorer в другие приложения и наоборот.
- Администраторы Linux обычно используют OpenSSL.
- Администраторы Windows обычно используют ключевой инструмент Java.
- Сертификат, открытый и закрытый ключи для сервера Code42
- Сертификат ЦС, подписавшего сертификат сервера Code42
- Промежуточные сертификаты, устанавливающие цепочку доверия между ЦС и сертификатом сервера Code42
- Перед установкой SSL-сертификата создайте резервную копию базы данных сервера Code42 с помощью дампа базы данных, чтобы при необходимости можно было восстановить ее до предыдущего состояния. Чтобы создать дамп:
- Выберите «Настройки» > «Сервер».
- В меню действий выберите "Дамп базы данных".
- Получите адрес ЦС, которому вы отправите запрос на получение подписанного сертификата, подтверждающего действительность вашего хранилища ключей.
- Установите KeyStore Explorer, если он еще не установлен.
- Если вы собираетесь импортировать сертификат с ключом шифрования, превышающим ограничения Java на импорт криптографических алгоритмов, сначала необходимо настроить корпоративный сервер для приема более длинных ключей шифрования.
- Для многосерверных сред Code42 мы рекомендуем применить этот процесс ко всем серверам Code42.
- Вы должны иметь роль администратора сервера или SYSADMIN, чтобы установить SSL-сертификат на свой сервер Code42.
- В этой статье предполагается, что вы знакомы со следующим:
- Основные принципы безопасности транспортного уровня (TLS)
- Настройка SSL-сертификатов
Утилита командной строки OpenSSL требуется, если вы используете Linux и хотите повторно использовать существующие ключевые материалы.
Помощь в создании хранилища ключей
Помощь в обработке запроса на подпись сертификата (CSR) или создании хранилища ключей не входит в обязанности Customer Champions. Чтобы получить помощь, обратитесь к своему менеджеру по работе с клиентами (CSM), чтобы привлечь команду профессиональных услуг.Терминология хранилища ключей
- Сертификат. Электронный документ, используемый для подтверждения права собственности на открытый ключ.
- Сертификат, подписанный ЦС. Центр сертификации (ЦС) подписывает сертификат электронным способом, чтобы подтвердить, что открытый ключ принадлежит владельцу, указанному в сертификате. Кто-то, получивший подписанный сертификат, может проверить, что подпись действительно принадлежит ЦС, и определить, не подделал ли кто-нибудь сертификат после того, как ЦС подписал его.
- Цепочка сертификатов. Один подписанный сертификат подтверждает, что присоединенный открытый ключ принадлежит его владельцу. Второй подписанный сертификат подтверждает надежность первого подписавшего, третий подтверждает второго и так далее. Вершиной цепочки является самозаверяющий, но пользующийся большим доверием корневой сертификат.
- Корневой сертификат: сертификат, которому доверяют, чтобы завершить цепочку сертификатов. Операционные системы и веб-браузеры обычно имеют встроенный набор доверенных корневых сертификатов. Когда ваш сервер отправляет цепочку сертификатов, и один из них соответствует одному из доверенных корневых сертификатов браузера, браузер доверяет вашему серверу. Когда браузер шифрует данные с помощью вашего открытого ключа, он гарантирует, что только ваш сервер сможет их прочитать.
- Самозаверяющий сертификат: файл, содержащий открытый ключ и идентифицирующий владельца этого ключа и соответствующего закрытого ключа.
Создать хранилище ключей
Создание Java KeyStore — это первый шаг в настройке сервера Code42 для использования вашего собственного SSL-сертификата, подписанного ЦС. Если у вас есть существующий закрытый ключ и соответствующий сертификат X.509 (вместе именуемые ключевыми материалами), вы можете использовать их повторно. Вы также можете начать с нуля, создавая новые ключевые материалы по мере необходимости. Шаги различаются в зависимости от имеющихся у вас ключевых материалов:
Существующие материалы должны включать альтернативное имя субъекта (SAN)
Сертификаты и хранилища ключей, созданные в соответствии со старым стандартом, могут не иметь расширения альтернативного имени субъекта (SAN). Большинство браузеров теперь не доверяют таким сертификатам. Если ваши существующие сертификаты и хранилища ключей не имеют расширения SAN, начните с нового запроса на подпись сертификата.Вариант 1. Создайте хранилище ключей без существующих ключевых материалов
Параметры Keypass и storepass
Вы должны использовать один и тот же пароль для хранилища ключей и закрытого ключа. Вы можете использовать любую строку для этих параметров, но они оба должны иметь одинаковое значение.Следуйте приведенным ниже инструкциям, если у вас нет закрытых ключей или сертификатов ЦС и вам нужно создать их с нуля.
Шаг 1. Создайте хранилище ключей и пару ключей
Пароль для ввода пары ключей
Сохраните этот пароль и используйте его в качестве пароля для всего хранилища ключей на шаге 7 ниже.Шаг 2. Создайте и отправьте запрос на подпись сертификата
Шаг 3. Импортируйте подписанные сертификаты в хранилище ключей
- Когда центр сертификации вернет ваш подписанный сертификат и ключ, поместите их в каталог, доступный для Keystore Explorer.
- В обозревателе хранилища ключей щелкните правой кнопкой мыши ту же запись пары ключей, которая использовалась для создания CSR, и выберите «Импортировать ответ ЦС» > «Из файла».
- Выберите подписанный сертификат в центре сертификации и нажмите «Импорт».
Подписанный сертификат добавляется в запись пары ключей как сертификат уровня сервера. - Чтобы проверить цепочку сертификатов, щелкните правой кнопкой мыши запись пары ключей и выберите "Просмотреть сведения" > "Сведения о цепочке сертификатов".
- Если вам нужно импортировать сертификаты промежуточного и корневого уровня, щелкните правой кнопкой мыши запись пары ключей и выберите «Редактировать цепочку сертификатов» > «Добавить сертификат», чтобы добавить сертификаты промежуточного и корневого уровня. См. раздел Добавление сертификатов в существующее хранилище ключей ниже.
- В строке меню выберите «Файл» > «Сохранить», чтобы сохранить импортированный сертификат в хранилище ключей.
Ваш файл хранилища ключей готов и готов к импорту на сервер Code42.
Вариант 2. Создайте хранилище ключей с существующими ключевыми материалами
Если вы хотите использовать существующие ключевые материалы для создания хранилища ключей, вы можете сделать следующее:
Добавить сертификаты в существующее хранилище ключей
Если у вас уже есть хранилище ключей, содержащее сертификаты, вы можете добавить новые сертификаты.
Если у вас нет материалов для ключей, вы можете импортировать сертификаты в хранилище ключей.Повторное использование существующих ключевых материалов из другого приложения (Linux)
Выполните следующие действия, чтобы повторно использовать существующую комбинацию закрытый ключ/сертификат из другого приложения, если вы работаете в Linux. В этих инструкциях предполагается, что и ваш закрытый ключ, и сертификат имеют формат PEM.
Для выполнения следующих шагов требуется использование утилиты командной строки OpenSSL.
Ваш файл хранилища ключей готов и готов к импорту на сервер Code42.
Повторное использование существующих ключевых материалов из другого приложения (Windows)
Выполните следующие действия, чтобы повторно использовать существующую комбинацию закрытый ключ/сертификат из другого приложения, если вы работаете в Windows. Ключевые материалы на платформах Windows обычно хранятся в файле хранилища ключей PKCS12. KeyStore Explorer может преобразовать файл хранилища ключей PKCS12 в файл JKS, выполнив следующие действия.
Ваш файл хранилища ключей готов и готов к импорту на сервер Code42.
Настройте сервер Code42 для использования хранилища ключей
Вы можете создать подписанное хранилище ключей, содержащее SSL-сертификат, который можно использовать для безопасного доступа к консоли Code42. После создания хранилища ключей введите его на свой сервер Code42.
-
.
- Перед установкой SSL-сертификата создайте резервную копию базы данных сервера Code42 с помощью дампа базы данных, чтобы при необходимости можно было восстановить ее до предыдущего состояния. Чтобы создать дамп:
- Выберите «Настройки» > «Сервер».
- В меню действий выберите "Дамп базы данных".
Устранение неполадок
- Если ваш тестовый сервер Code42 не запускается после установки нового хранилища ключей, удалите и переустановите сервер.
- Если рабочий сервер Code42 не запускается после установки нового хранилища ключей, см. раздел Восстановление сервера Code42 до предыдущего состояния.
- Большинство проблем с SSL-сертификатами связано с созданием, подписанием и преобразованием ключей. Мы рекомендуем вам:
- Тщательно повторите описанный выше процесс.
- Убедитесь, что ваш сертификат и файлы хранилища ключей содержат расширение альтернативного имени субъекта (SAN).
Преобразуйте хранилище ключей или сертификат в текст, как описано ниже. Найдите
альтернативное имя субъекта X509v3 - Проконсультируйтесь с вашим ЦС, чтобы убедиться, что у вас есть правильные промежуточные сертификаты.
- См. документацию по используемому инструменту:
Автоматически генерируемые самозаверяющие сертификаты
Ключи хранятся в хранилище ключей. Ваши авторитетные серверы или серверы хранения используют ключи в хранилище ключей для безопасной обработки транзакций.
Если сервер Code42 не может найти ключи, он ищет хранилища ключей со следующим приоритетом:
Если по какой-либо причине ваши серверы Code42 не могут найти ключи в этих местах, они генерируют самозаверяющий сертификат, чтобы обеспечить бесперебойную работу вашей среды Code42. Автоматически сгенерированный самозаверяющий сертификат следует использовать только временно, пока вы устраняете проблемы с хранилищем ключей. Code42 настоятельно рекомендует использовать сертификат, подписанный ЦС, для производственных сред.
Преобразование сертификатов и хранилищ ключей в текстовые файлы
Файлы сертификатов и хранилища ключей имеют двоичный формат или формат base64. Вы можете сделать их более удобными для чтения, преобразовав файлы в формат PEM, а затем преобразовав файлы PEM в текст следующим образом:
ПРИМЕЧАНИЕ. Описанная ниже процедура применима только при работе с модулями до версии 4.0.4. Ручная настройка распространителя MQTT для использования хранилища ключей Java поддерживается и будет работать правильно при запуске модулей до версии 4.0.4, но этот процесс больше не рекомендуется для шифрования связи MQTT. Если возможно, обновите модули до версии 4.0.4 или выше и следуйте рабочему процессу по умолчанию для защиты связи MQTT.
Независимо от того, используете ли вы сертификат, выданный доверенным ЦС (центром сертификации), или самозаверяющий сертификат, внутренне распространитель MQTT получает доступ к этим сертификатам через файл Java KeyStore, для использования которого он настроен. Это хранилище ключей должно содержать открытый сертификат, закрытый ключ и, возможно, промежуточный сертификат, если это применимо.
Существует множество способов создания хранилища ключей Java. В этом примере мы покажем, как это можно сделать с помощью KeyStore Explorer. Он может работать на Windows, OSX или любой другой ОС, поддерживающей Java. Он предоставляет простой в использовании графический интерфейс для создания и управления хранилищами ключей Java. Обозреватель хранилища ключей может создать хранилище ключей из существующей пары ключей (т. е. сертификатов) или при желании может сгенерировать пару закрытых ключей. После установки KeyStore Explorer откройте его, и вы должны увидеть что-то похожее на следующее. Он может попросить вас изменить некоторые параметры безопасности Java перед запуском. Если это так, следуйте инструкциям, которые он предоставляет.
Использование существующей пары ключей
Выберите "Создать новое хранилище ключей". Выберите тип JKS, как показано ниже.
Поместите необходимые компоненты в хранилище ключей, начиная с открытой/закрытой пары ключей. Это открытый сертификат и закрытый ключ, которые мы изначально сгенерировали. Щелкните значок "Импортировать пару ключей" в меню KeyStore Explorer (значок с двумя ключами и синей стрелкой вниз).
Выберите OpenSSL в качестве типа и нажмите OK:
Перейдите к файлам ключей и сертификатов, как показано ниже, и нажмите «Импорт»:
Теперь вам будет предложено указать псевдоним. Вы можете оставить это значение по умолчанию. Оно будет отражать общее имя, указанное во время генерации CSR и CA:
Теперь вам будет предложено указать пароль для пары ключей. На этом этапе MQTT Distributor требует, чтобы пароли пары ключей совпадали с общим паролем хранилища ключей. Итак, убедитесь, что вы записали этот пароль, потому что нам также нужно будет использовать его в качестве общего пароля хранилища ключей. Примечание. Использование пароля пары ключей является ограничением файла JKS и, следовательно, требованием при настройке TLS.
На этом этапе вы можете сохранить хранилище ключей и указать пароль хранилища ключей. Сделайте это, нажав значок сохранения в верхнем левом меню:
Теперь вам будет предложено ввести пароль. Укажите тот же безопасный пароль, который вы использовали ранее для пары открытых/закрытых ключей. Примечание. Использование пароля Key Pair/KeyStore является ограничением файла JKS и, следовательно, требованием при настройке TLS.
Наконец, дайте ему имя и место в файловой системе и нажмите Сохранить:
Используйте свой браузер и войдите в свой центральный шлюз (дистрибьютор). В разделе «Конфигурация» → «Распространитель MQTT» → «Настройки» на вкладке «Общие» загрузите файл хранилища ключей. Снимите флажок, чтобы включить обычное TCP-соединение, и установите флажок в разделе «Настройки TLS», чтобы включить порты TLS. Не забудьте ввести пароль в поле над частью файла хранилища ключей Java.
В настройках распространителя MQTT измените конфигурацию связи TLS с TCP на SSL. Загрузите созданный файл хранилища ключей и введите пароль.
При использовании самозаверяющих сертификатов требуемые сертификаты ЦС по умолчанию не известны клиентам MQTT, как если бы сертификат был сгенерирован настоящим ЦС. Для этого требуется получить и загрузить сертификаты ЦС, составляющие цепочку сертификатов (также известную как «цепочка доверия»). Цепочку сертификатов можно экспортировать из существующего хранилища ключей (например, созданного здесь), выполнив следующие действия. Вернитесь в приложение KeyStore Explorer и создайте необходимый файл root.ca.pem. Сохраните этот файл в том же месте (по умолчанию), что и файл cert.jks. Используйте этот шаблон ниже, чтобы загрузить этот файл root.ca.pem в Transmission и Engine. (На этих страницах пароль не требуется.)
Сохраните этот файл ключа rootca.pem.Он будет установлен как на модулях двигателя, так и на модулях передачи, чтобы обеспечить безопасное подключение по протоколу SSL к вашему дистрибьютору (серверу зажигания).
На данный момент все клиенты MQTT теперь могут подключаться через соединения с поддержкой TLS. Обратите внимание на новый порт 8883. Если используется сертификат, подписанный общедоступным доверенным ЦС, и ОС с клиентом MQTT поддерживает этот конкретный ЦС, клиентам не нужно вносить какие-либо изменения в свой список доверенных корневых сертификатов. При использовании самозаверяющего сертификата есть несколько вариантов:
Сертификат корневого ЦС можно добавить в список доверенных корневых сертификатов операционной системы
Это означает, что приложению не нужно обрабатывать особые случаи (например, изменения в доверенном хранилище Java)
Клиентское приложение можно изменить для загрузки сертификата корневого ЦС для проверки сертификата сервера
Это не требует изменений ОС
Обратите внимание, что если для вашего сертификата также требуется промежуточный сертификат, его также необходимо добавить в клиент MQTT, чтобы можно было установить полную цепочку доверия.
Использование сертификата для защиты связи с MQTT Engine или MQTT Transmission:
В MQTT Engine или Transmission может потребоваться указать компоненты TLS для конфигурации клиента. При использовании сертификатов, подписанных доверенным ЦС, дополнительная настройка не требуется, кроме изменения формы URL-адреса. Форма должна быть следующей:
Если доверенный ЦС, у которого вы приобрели сертификат, требует промежуточного сертификата или если вы создали самозаверяющий сертификат, вам потребуется указать цепочку сертификатов ЦС в конфигурации. Если вы получили сертификат от доверенного ЦС и им требуется промежуточный сертификат, он будет предоставлен ЦС. Если вы следовали приведенному выше руководству для самозаверяющего сертификата, а также создали промежуточный ЦС, это будет файл с именем «ca-chain.cert.pem». Если вы просто создали ЦС без промежуточного сертификата, это будет общедоступный сертификат ЦС. Как только вы определили цепочку сертификатов ЦС на основе этих описаний, скопируйте ее в файл с именем «root.ca.pem» в вашей системе разработки. Обратите внимание, что это изменение имени файла важно и необходимо.
Загрузите файл с помощью показанной здесь конфигурации, нажав Сохранить изменения:
После сохранения настроек клиент MQTT, связанный с MQTT Engine или MQTT Transmission, будет подключаться с использованием TLS.
Читайте также:
Импорт пары ключей из OpenSSL и сертификатов
Экспорт пары ключей
Экспорт цепочки сертификатов пары ключей
Экспорт закрытого ключа пары ключей
Экспорт закрытого ключа пары ключей как PVK
Примечание. Закрытые ключи DSA не подходят для целей Exchange. Для экспорта пар ключей DSA в PVK параметры типа ключа отключены, а подпись предварительно выбрана.
Экспорт закрытого ключа пары ключей как OpenSSL
Экспортировать открытый ключ пары ключей как OpenSSL
Перетащите экспорт пары ключей
Установите пароль пары ключей
Вырезать и вставить пару ключей
Скопируйте и вставьте пару ключей
В других статьях описываются другие инструменты для создания сертификата, подписанного ЦС:
Ваш локальный авторитетный сервер Code42 не является исключением. Сервер Code42, настроенный на использование подписанного сертификата, строгой проверки TLS и строгих заголовков безопасности, защищает связь сервера с браузерами, вашими приложениями Code42 и другими серверами.
Сертификаты и файлы хранилища ключей Java
Сервер Code42 принимает сертификаты, объединенные в файл Java KeyStore. Хранилище ключей содержит:
Создайте хранилище ключей с помощью такой утилиты, как KeyStore Explorer, прежде чем применять его к серверу Code42 из консоли Code42.
Создайте хранилище ключей на любом компьютере.
Вы можете генерировать ключи и создавать хранилища ключей на любом защищенном компьютере, а затем импортировать результат в виде файла *.jks на ваш авторитетный сервер через консоль Code42. Вам больше не нужен доступ к хост-компьютеру авторитетного сервера.Прежде чем начать
Соображения