Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiornamento delle applicazioni per connettersi alle istanze di MariadB utilizzando nuovi certificati/SSLTLS
A partire dal 13 gennaio 2023, Amazon RDS ha pubblicato nuovi certificati Certificate Authority (CA) per la connessione alle istanze RDS DB tramite Secure Socket Layer o Transport Layer Security (SSL/TLS). Di seguito sono disponibili le informazioni sull'aggiornamento delle applicazioni per utilizzare i nuovi certificati.
Questo argomento aiuta a determinare se le applicazioni richiedono la verifica dei certificati per la connessione delle istanze database.
Nota
Alcune applicazioni sono configurate per connettersi a MariaDB sono se possono correttamente verificare il certificato sul server. Per queste applicazioni, è necessario aggiornare gli archivi di trust delle applicazioni client per includere i nuovi certificati CA.
Puoi specificare le seguenti SSL modalità: disabled
preferred
, erequired
. Quando si utilizza la preferred
SSL modalità e il certificato CA non esiste o non è aggiornato, la connessione torna a non essere utilizzata SSL e la connessione continua a funzionare correttamente.
Consigliamo di evitare la modalità preferred
. In modalità preferred
, se la connessione rileva un certificato non valido, interrompe l'utilizzo della crittografia e procede in modo non crittografato.
Dopo aver aggiornato i certificati CA negli archivi di trust delle applicazioni client, puoi ruotare i certificati nelle istanze database. Consigliamo vivamente di testare queste procedure in un ambiente di sviluppo o di gestione temporanea prima di implementarle negli ambienti di produzione.
Per ulteriori informazioni sulla rotazione dei certificati, consulta Rotazione del certificatoSSL/TLS. Per ulteriori informazioni sul download, consulta . Per informazioni sull'utilizzo diSSL/TLScon le istanze DB di MariadB, consulta. SSL/TLSsupporto per istanze MariaDB DB su Amazon RDS
Argomenti
Determinare se un client richiede la verifica del certificato per la connessione
Puoi verificare se JDBC i client e I miei SQL client richiedono la verifica del certificato per connettersi.
JDBC
L'esempio seguente con My SQL Connector/J 8.0 mostra un modo per verificare le proprietà di JDBC connessione di un'applicazione per determinare se le connessioni riuscite richiedono un certificato valido. Per ulteriori informazioni su tutte le opzioni di JDBC connessione per MySQL, vedete Proprietà di configurazione nella documentazione
Quando si utilizza My SQL Connector/J 8.0, una SSL connessione richiede la verifica rispetto al certificato CA del server se le proprietà della connessione sono sslMode
impostate su VERIFY_CA
oVERIFY_IDENTITY
, come nell'esempio seguente.
Properties properties = new Properties(); properties.setProperty("sslMode", "VERIFY_IDENTITY"); properties.put("user", DB_USER); properties.put("password", DB_PASSWORD);
Nota
Se utilizzate My SQL Java Connector v5.1.38 o versione successiva oppure My SQL Java Connector v8.0.9 o versione successiva per connettervi ai database, anche se non avete configurato esplicitamente le applicazioni per utilizzareSSL/TLSdurante la connessione ai database, questi driver client utilizzano per impostazione predefinita/. SSL TLS Inoltre, quando usanoSSL/TLS, eseguono una verifica parziale del certificato e non riescono a connettersi se il certificato del server di database è scaduto.
Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.
Il mio SQL
I seguenti esempi con My SQL Client mostrano due modi per verificare la mia SQL connessione di uno script per determinare se le connessioni riuscite richiedono un certificato valido. Per ulteriori informazioni su tutte le opzioni di connessione con My SQL Client, consulta Configurazione lato client per le connessioni crittografate
Quando si utilizza My SQL 5.7 o My SQL 8.0 Client, una SSL connessione richiede la verifica rispetto al certificato CA del server se per l'--ssl-mode
opzione specificata VERIFY_CA
oVERIFY_IDENTITY
, come nell'esempio seguente.
mysql -h mysql-database.rds.amazonaws.com -uadmin -ppassword --ssl-ca=/tmp/
ssl-cert.pem
--ssl-mode=VERIFY_CA
Quando si utilizza il client My SQL 5.6, una SSL connessione richiede la verifica rispetto al certificato CA del server se si specifica l'--ssl-verify-server-cert
opzione, come nell'esempio seguente.
mysql -h mysql-database.rds.amazonaws.com -uadmin -ppassword --ssl-ca=/tmp/
ssl-cert.pem
--ssl-verify-server-cert
Aggiornare l'archivio di trust delle applicazioni
Per informazioni sull'aggiornamento del trust store per SQL le mie applicazioni, vedere UsingTLS/SSLwith MariaDB Connector/J nella documentazione di MariaDB
Per ulteriori informazioni sul download del certificato root, consulta .
Per gli script di esempio che importano i certificati, consulta Script di esempio per l'importazione di certificati nel tuo archivio di trust.
Nota
Quando aggiorni l'archivio di trust puoi conservare i certificati meno recenti oltre ad aggiungere i nuovi certificati.
Se stai usando il driver MariadB JDBC Connector/J in un'applicazione, imposta le seguenti proprietà nell'applicazione.
System.setProperty("javax.net.ssl.trustStore",
certs
); System.setProperty("javax.net.ssl.trustStorePassword", "password
");
Quando avvii l'applicazione, imposta le seguenti proprietà.
java -Djavax.net.ssl.trustStore=
/path_to_truststore/MyTruststore.jks
-Djavax.net.ssl.trustStorePassword=my_truststore_password
com.companyName.MyApplication
Nota
Specifica password diverse dalle istruzioni mostrate qui come best practice di sicurezza.
Codice Java di esempio per stabilire connessioni SSL
Il seguente esempio di codice mostra come configurare la SSL connessione utilizzandoJDBC.
private static final String DB_USER = "admin"; private static final String DB_USER = "
user name
"; private static final String DB_PASSWORD = "password
"; // This key store has only the prod root ca. private static final String KEY_STORE_FILE_PATH = "file-path-to-keystore
"; private static final String KEY_STORE_PASS = "keystore-password
"; public static void main(String[] args) throws Exception { Class.forName("org.mariadb.jdbc.Driver"); System.setProperty("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH); System.setProperty("javax.net.ssl.trustStorePassword", KEY_STORE_PASS); Properties properties = new Properties(); properties.put("user", DB_USER); properties.put("password", DB_PASSWORD); Connection connection = DriverManager.getConnection("jdbc:mysql://ssl-mariadb-public.cni62e2e7kwh.us-east-1.rds.amazonaws.com:3306?useSSL=true",properties); Statement stmt=connection.createStatement(); ResultSet rs=stmt.executeQuery("SELECT 1 from dual"); return; }
Importante
Dopo aver stabilito che le connessioni al database utilizzanoSSL/TLSe aver aggiornato l'archivio attendibile dell'applicazione, è possibile aggiornare il database per utilizzare i certificati rds-ca-rsa 2048-g1. Per istruzioni, consulta la fase 3 in Aggiornamento del certificato CA modificando l'istanza o il cluster di database.
Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.