Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si connettono applicazioni a Database di Azure per PostgreSQL, il client dell'applicazione deve installare certificati radice attendibili. Le sezioni seguenti illustrano come aggiornare i certificati radice attendibili per le applicazioni, uno scenario comune per le applicazioni che si connettono a un'istanza flessibile del server di Azure Database per PostgreSQL.
Importante
A partire dal 11 novembre 2025, le aree di Azure nell'elenco seguente sono pianificate per una rotazione dei certificati TLS/SSL che usa nuovi certificati CA intermedi.
- Stati Uniti centro-occidentali
- East Asia
- UK South
A partire dal 19 gennaio 2026, questa rotazione è pianificata per estendersi a tutte le aree di Azure rimanenti, tra cui Azure per enti pubblici e tutte le altre aree.
Per informazioni sulla risoluzione dei problemi, vedere Problemi di associazione del certificato.
Importare certificati CA radice nell'archivio chiavi Java nel client, per gli scenari di associazione di certificati
Le applicazioni Java scritte in modo personalizzato usano un archivio chiavi predefinito, denominato cacerts, che contiene certificati dell'autorità di certificazione (CA) attendibili. È anche noto come archivio attendibilità Java. Un file di certificati denominato cacerts risiede nella directory delle proprietà di sicurezza java.home\lib\security, dove java.home è la directory dell'ambiente di runtime (la directory jre nell'SDK o la directory di primo livello dell'ambiente di runtime Java™ 2).
È possibile usare le istruzioni seguenti per aggiornare i certificati CA radice del client per gli scenari di associazione di certificati client con PostgreSQL:
Controllare l'archivio chiavi Java
cacertsper verificare se contiene già i certificati necessari. È possibile elencare i certificati nell'archivio chiavi Java usando il comando seguente:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtSe i certificati necessari non sono presenti nell'archivio chiavi Java nel client, come è possibile controllare nell'output, è consigliabile procedere con le istruzioni seguenti:
Creare una copia di backup dell'archivio chiavi personalizzato.
Scaricare i certificati e salvarli in locale dove è possibile farvi riferimento.
Generare un archivio certificati CA combinato con tutti i certificati CA radice necessari inclusi. L'esempio seguente mostra l'uso di DefaultJavaSSLFactory per gli utenti JDBC di 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 -nopromptSostituire il file dell'archivio chiavi originale con quello nuovo generato:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");Sostituire il file .pem CA radice originale con il file CA radice combinato e riavviare l'applicazione/client.
Per altre informazioni sulla configurazione dei certificati client con il driver JDBC PostgreSQL, vedere questa documentazione.
Annotazioni
Per importare i certificati negli archivi certificati client, potrebbe essere necessario convertire i file con estensione CRT del certificato in formato PEM. È possibile usare l'utilità OpenSSL per eseguire queste conversioni di file.
Ottenere un elenco di certificati attendibili nell'archivio chiavi Java a livello di codice
Per impostazione predefinita, Java archivia i certificati attendibili in un file speciale denominato cacerts che si trova all'interno della cartella di installazione Java nel client.
L'esempio seguente legge innanzitutto cacerts e lo carica nell'oggetto 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;
}
La password predefinita per cacerts è changeit, ma deve essere diversa nel client reale, perché gli amministratori consigliano di modificare la password immediatamente dopo l'installazione di Java.
Dopo aver caricato l'oggetto KeyStore, è possibile usare la classe PKIXParameters per leggere i certificati presenti.
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());
}
Aggiornare i certificati CA radice quando si usano i client in Servizi app di Azure per scenari di associazione di certificati
Per i servizi app di Azure, connettendosi a un'istanza del server flessibile di Database di Azure per PostgreSQL, è possibile avere due scenari sull'aggiornamento dei certificati client; ciò dipende da come si usa SSL con l'applicazione distribuita in Azure App Services.
- I nuovi certificati vengono aggiunti al servizio app a livello di piattaforma prima che si verifichino modifiche nell'istanza del server flessibile di Database di Azure per PostgreSQL. Se si usano i certificati SSL inclusi nella piattaforma del servizio app nell'applicazione, non è necessaria alcuna azione. Per altre informazioni, vedere Aggiungere e gestire certificati TLS/SSL nel servizio app di Azure, nella documentazione del Servizio app di Azure.
- Se si include in modo esplicito il percorso del file di certificato SSL nel codice, è necessario scaricare il nuovo certificato e aggiornare il codice per usarlo. Un buon esempio di questo scenario è quando si usano contenitori personalizzati nel servizio app, come descritto in Esercitazione: Configurare un contenitore sidecar per un contenitore personalizzato nel servizio app di Azure, nella documentazione del Servizio app di Azure.
Aggiornare i certificati CA radice quando si usano i client nel servizio Azure Kubernetes (AKS) per scenari di associazione di certificati
Se si sta provando a connettersi al Database di Azure per PostgreSQL usando applicazioni ospitate nei servizi Azure Kubernetes (AKS) e aggiungendo certificati, avviene in modo simile all'accesso da un ambiente host del cliente dedicato. Fare riferimento ai passaggi illustrati qui.
Aggiornare i certificati radice CA per gli utenti di .NET (Npgsql) su Windows, per scenari di associazione di certificati
Per gli utenti di .NET (Npgsql) in Windows, nel connettersi alle istanze del server flessibile di Database di Azure per PostgreSQL, assicurarsi che tutte e tre le Autorità di certificazione radice Microsoft RSA 2017, DigiCert Global Root G2 e Digicert Global Root CA, esistano nell'archivio certificati di Windows, Autorità di certificazione radice attendibili. Se non esistono certificati, importare il certificato mancante.
Aggiornare i certificati CA radice per altri client per scenari di associazione di certificati
Per altri utenti client PostgreSQL, è possibile unire due file di certificato CA usando il formato di seguito:
-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----