Я следую руководству timescaleDB для API с Аутентификация по сертификату --> 2. Генерация ключей и сертификатов для узлов:
Для соединения SSL вам нужны четыре переменные среды:
- SSL корневой сертификат
- SSL-сертификат (для узла)
- SSL-ключ (для узла)
- SSL-пароль (для узла)
Что касается 1.), вы получаете его из шкалы времени при запуске базы данных в виде текста или загрузки.
Что касается 2.), вы, похоже, можете создать его самостоятельно как самозаверяющий сертификат с помощью:
openssl req -out server.csr -new -newkey rsa:2048 -nodes \
-keyout сервер.ключ
Я заполнил "страна" и пропустил остальные записи только с "." (это было предложено пропустить). Я также заполнил «пароль вызова». Не уверен, насколько актуально это заполнять и есть ли пароль 4.) в списке выше или нет.
Что касается 3.), вам сначала нужно изменить файл openssl.cnf, который не упоминается в руководстве по шкале времени. Это делается путем поиска с помощью где находится openssl.cnf
, или в моем случае местоположение было показано в выводе терминала, когда параметры там все еще были неправильными, что показало /usr/lib/ssl/openssl.cnf
как расположение. Измените конфигурацию с помощью судо нано /usr/lib/ssl/openssl.cnf
чтобы были найдены закрытый ключ «server.key» и корневой сертификат «ca.pem». После этого выполните команду гида:
openssl ca -extensions v3_intermediate_ca -days 3650 -notext \
-md sha256 -in server.csr -out server.crt
но тогда вы получаете ошибку:
Использование конфигурации из /usr/lib/ssl/openssl.cnf
Сертификат ЦС и закрытый ключ ЦС не совпадают
140718372717888: ошибка: 0B080074: подпрограммы сертификата x509: X509_check_private_key: несоответствие значений ключей: ../crypto/x509/x509_cmp.c:299:
Сценарий по-прежнему создает server.key и server.csr, но необходимый server.crt создать не удается.
И только Как преобразовать .csr в .cer (или что-то еще, что можно использовать в Windows) кажется, может помочь мне получить server.crt с помощью:
openssl x509 -req -in server.csr -signkey server.key -out server.crt
Введите это в настройках соединения SSL в Hasura:
Но затем при попытке подключиться к моей базе данных в масштабе времени с помощью Hasura я получаю сообщение об ошибке Отсутствует Env Var
:
Не удалось добавить источник данных
Inconsistent object: Missing Env Var: -----BEGIN CERTIFICATE----- MIICoTCCAYkCFAHx6x6kVHJ023/ui0aLoWLqA8RyMA0GCSqGSIb3DQEBCwUAMA0x CzAJBgNVBAYTAkRFMB4XDTIxMDkyMTE4MDQzNVoXDTIxMTAyMTE4MDQzNVowDTEL MAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWGxsz
¦
g98irlkrtDn17jIzmZMjlJEQ75P9L78lJMT2eYCFRqVoCm+7x5IUS18UlnGUtwR4 BuIZOg4= -----КОНЕЦ СЕРТИФИКАТА-----
Я предполагаю, что это просто дополнительная проблема, поскольку сертификат ЦС и закрытый ключ ЦС явно не совпадают? Поэтому вопрос в основном о Сертификат ЦС и закрытый ключ ЦС не совпадают
, вместо.
Срок ответа:
Хотя мы предоставляем корень ЦС, поскольку сертификаты SSL для каждой службы
имеют внутреннюю подпись, так что это позволит вам создать доверие, но мы
не предоставляйте им закрытые ключи или пароли SSL.
Документация, на которую вы ссылаетесь, предназначена для создания аутентификации сертификата.
между узлами в локальной многоузловой среде. Облако шкалы времени
не допускает аутентификацию сертификата, поэтому они не будут иметь значения
здесь, и вы не сможете комбинировать созданные вами сертификаты с
ЦС, загруженный с облачного портала.
В качестве обходного пути вы также можете отказаться от шифрования SSL, поскольку оно необязательно:
просто предоставив всю строку подключения (скопированную из
Поле URI службы на облачном портале Timescale) было достаточно, чтобы
соединять.
Я проверил это, это правда, вы можете запустить его без SSL, хотя SSL подготовлен для использования. я использовал корень сертификат для SSL-подключения с помощью psql или pgAdmin к серверной части PostgreSQL timescaleDB, и они запросили только корневой сертификат SSL --> 1.) выше, а не сертификат CA узла и закрытый ключ CA узла --> 2.) - 4.) выше.
Подключение только через SSL корень сертификат также работал с приложением node-postgres/act-postgres/Express/React, см.:
Тем не менее, настройки интерфейса прикладного программирования Hasura запрашивают четыре переменные среды SSL-соединения из списка вверху, как я могу получить их, чтобы я мог подключиться к Timescale?