Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При подключении приложений к База данных Azure для PostgreSQL клиент приложения должен установить доверенные корневые сертификаты. В следующих разделах описано обновление доверенных корневых сертификатов для приложений. Этот процесс является общим сценарием для приложений, подключающихся к База данных Azure для PostgreSQL гибкому серверу.
Это важно
Microsoft меняет TLS-сертификаты для базы данных Azure Database для PostgreSQL, чтобы обновить удостоверяющий центр и результирующую цепочку сертификатов.
Если конфигурация клиента использует рекомендуемые конфигурации для TLS, вам не нужно предпринимать действий.
Расписание ротации промежуточного сертификата:
- Обновления для регионов Azure западной части США и Восточной Азии завершены.
- Обновления для региона Юго-Великобритании и правительственных регионов США начинаются 21 января 2026 года.
- Обновления для центра США начинаются 26 января 2026 г.
- Обновления для всех остальных регионов начинаются 28 января 2026 г.
Расписание смены корневого сертификата:
- Обновления сертификатов корневого ЦС от DigiCert Global Root CA (G1) до DigiCert Global Root G2 в регионах Китая начинаются с 9 марта 2026 г.
Импорт сертификатов корневого центра сертификации в хранилище ключей Java на клиенте в сценариях привязки сертификатов
Пользовательские приложения, написанные на Java, используют хранилище ключей по умолчанию, называемое cacerts, которое содержит сертификаты доверенных центров сертификации (ЦС). Он также часто называется хранилищем доверительных сертификатов Java. Файл сертификатов с именем cacerts расположен в каталоге свойств безопасности java.home\lib\security, где java.home — каталог среды выполнения (jre в SDK или корневой каталог Java™ 2 Runtime Environment).
Чтобы обновить сертификаты корневого ЦС клиента для сценариев закрепления сертификатов клиента с помощью PostgreSQL, выполните следующие действия.
Проверьте хранилище ключей
cacertsJava, чтобы узнать, содержит ли он уже необходимые сертификаты. Вы можете перечислить сертификаты в хранилище ключей Java с помощью следующей команды:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtЕсли необходимые сертификаты отсутствуют в хранилище ключей Java на стороне клиента, как видно из выходных данных, выполните следующие действия:
Создайте резервную копию пользовательского хранилища ключей.
Скачайте сертификаты и сохраните их локально, где можно ссылаться на них.
Создайте объединенное хранилище сертификатов ЦС, включающее все необходимые корневые сертификаты ЦС. В следующем примере показано использование
DefaultJavaSSLFactoryдля пользователей JDBC PostgreSQL.keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert2 -file "D:\ Microsoft ECC Root Certificate Authority 2017.crt.pem" -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootCA.crt.pem -keystore truststore -storepass password -nopromptЗамените исходный файл хранилища ключей новым созданным:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");Замените исходный PEM-файл корневого сертификата УЦ на объединённый файл корневого сертификата УЦ и перезапустите приложение или клиент.
Дополнительные сведения о настройке сертификатов клиента с помощью драйвера JDBC PostgreSQL см. в этой документации.
Замечание
Чтобы импортировать сертификаты в хранилища сертификатов клиента, может потребоваться преобразовать файлы CRT сертификата в pem-формат. Служебная программа OpenSSL позволяет выполнять эти преобразования файлов.
Получение списка доверенных сертификатов в Хранилище ключей Java программным способом
По умолчанию Java сохраняет доверенные сертификаты в специальном файле с именем cacerts , расположенном в папке установки Java на клиенте.
Следующий пример считывает cacerts и загружает его в объект KeyStore :
private KeyStore loadKeyStore() {
String relativeCacertsPath = "/lib/security/cacerts".replace("/", File.separator);
String filename = System.getProperty("java.home") + relativeCacertsPath;
FileInputStream is = new FileInputStream(filename);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "changeit";
keystore.load(is, password.toCharArray());
return keystore;
}
Пароль по умолчанию для cacerts — changeit, но на реальном клиенте он должен быть другим, поскольку администраторы рекомендуют изменить пароль сразу после установки Java.
После загрузки объекта KeyStore используйте класс PKIXParameters для чтения сертификатов.
public void whenLoadingCacertsKeyStore_thenCertificatesArePresent() {
KeyStore keyStore = loadKeyStore();
PKIXParameters params = new PKIXParameters(keyStore);
Set<TrustAnchor> trustAnchors = params.getTrustAnchors();
List<Certificate> certificates = trustAnchors.stream()
.map(TrustAnchor::getTrustedCert)
.collect(Collectors.toList());
assertFalse(certificates.isEmpty());
}
Обновление сертификатов корневого ЦС при использовании клиентов в службах приложение Azure для сценариев закрепления сертификатов
Для служб приложение Azure, подключающихся к гибкому серверу База данных Azure для PostgreSQL, существуют два возможных сценария обновления сертификатов клиента. Сценарий зависит от того, как вы используете SSL с приложением, развернутом в службах приложение Azure.
- Платформа добавляет новые сертификаты в службу приложений перед изменениями на База данных Azure для PostgreSQL гибком сервере. Если вы используете SSL-сертификаты, включенные на платформу службы приложений в приложении, никаких действий не требуется. Дополнительные сведения см. в разделе "Добавление TLS/SSL-сертификатов" в службе приложений Azure и управление ими в документации по службе приложений Azure.
- Если вы явно включаете путь к ФАЙЛу SSL-сертификата в коде, необходимо скачать новый сертификат и обновить код для его использования. Хорошим примером такого сценария является использование пользовательских контейнеров в Служба приложений Azure, как описано в руководстве «Tutorial: Configure a sidecar container for custom container in Служба приложений Azure» в документации Служба приложений Azure.
Обновите сертификаты корневых центров сертификации при использовании клиентов в службе Azure Kubernetes Service (AKS), в сценариях привязки сертификатов
Если вы пытаетесь подключиться к Azure Database для PostgreSQL с помощью приложений, размещенных в Службах Azure Kubernetes Services (AKS) и пиннинга сертификатов, это похоже на доступ из выделенной среды хостинга клиента. Ознакомьтесь с инструкциями здесь.
Обновление сертификатов корневого ЦС для пользователей .NET (Npgsql) в Windows для сценариев закрепления сертификатов
Для пользователей .NET (Npgsql) в Windows, подключающихся к База данных Azure для PostgreSQL — Flexible Server, убедитесь, что все три сертификата — Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2 и DigiCert Global Root CA — присутствуют в хранилище сертификатов Windows в разделе "Доверенные корневые центры сертификации". Если какие-либо сертификаты не существуют, импортируйте отсутствующий сертификат.
Обновление сертификатов корневого ЦС для других клиентов для сценариев закрепления сертификатов
Для других пользователей клиента PostgreSQL можно объединить два файла сертификата ЦС с помощью следующего формата:
-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----