

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 la connessione alle istanze DB di Oracle utilizzando nuovi certificati SSL/TLS
<a name="ssl-certificate-rotation-oracle"></a>

A partire dal 13 gennaio 2023, Amazon RDS ha pubblicato nuovi certificati Certificate Authority (CA) per la connessione alle istanze DB RDS utilizzando 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 può aiutarti a determinare se alcune applicazioni client vengono utilizzate SSL/TLS per connettersi alle tue istanze DB. 

**Importante**  
Quando si modifica il certificato per un'istanza database Amazon RDS for Oracle, viene riavviato solo il listener di database. L'istanza database non viene riavviata. Le connessioni al database esistenti non vengono influenzate, ma le nuove connessioni presenteranno errori per un breve periodo durante il riavvio del listener.  
È consigliabile riavviare il database Oracle per evitare errori di connessione.

**Nota**  
Per le applicazioni client che vengono utilizzate SSL/TLS per connettersi alle istanze DB, è necessario aggiornare gli archivi di fiducia delle applicazioni client per includere i nuovi certificati CA. 

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 certificato SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md). Per ulteriori informazioni sul download, consulta [](UsingWithRDS.SSL.md). Per informazioni sull'utilizzo SSL/TLS con le istanze Oracle DB, vedere. [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)

**Topics**
+ [Verifica se le applicazioni si connettono utilizzando SSL](#ssl-certificate-rotation-oracle.determining)
+ [Aggiornare l'archivio di trust delle applicazioni](#ssl-certificate-rotation-oracle.updating-trust-store)
+ [Codice Java di esempio per stabilire connessioni SSL](#ssl-certificate-rotation-oracle.java-example)

## Verifica se le applicazioni si connettono utilizzando SSL
<a name="ssl-certificate-rotation-oracle.determining"></a>

Se la tua istanza database Oracle utilizza un gruppo di opzioni con l'opzione `SSL` aggiunta, potresti dover utilizzare SSL. Controlla seguendo le istruzioni seguenti in [Generazione di un elenco delle opzioni e delle impostazioni delle opzioni per un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ListOption). Per ulteriori informazioni sull'opzione `SSL`, consulta [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md).

Controlla il log listener per determinare se ci siano connessioni SSL. Di seguito è riportato un output di esempio in un log listener.

```
{{date}} {{time}} * (CONNECT_DATA=(CID=(PROGRAM={{program}})
(HOST={{host}})(USER={{user}}))(SID={{sid}})) * 
(ADDRESS=(PROTOCOL=tcps)(HOST={{host}})(PORT={{port}})) * establish * ORCL * 0
```

Quando `PROTOCOL` ha il valore `tcps` per una entry, mostra una connessione SSL. Tuttavia, quando `HOST` è `127.0.0.1`, puoi ignorare la entry. Le connessioni da `127.0.0.1` sono un management agent locale sull’istanza database. Tali connessioni non sono esterne a SSL. Pertanto, hai applicazioni di connessione mediante SSL se vedi voci dei listener log in cui `PROTOCOL` è `tcps` e `HOST` *non è * `127.0.0.1`.

Per controllare il log del listener, puoi pubblicarlo su Amazon CloudWatch Logs. Per ulteriori informazioni, consulta [Pubblicazione dei log Oracle su Amazon CloudWatch Logs](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Oracle.PublishtoCloudWatchLogs).

## Aggiornare l'archivio di trust delle applicazioni
<a name="ssl-certificate-rotation-oracle.updating-trust-store"></a>

È possibile aggiornare il trust store per le applicazioni che utilizzano SQL\*Plus o JDBC per le connessioni. SSL/TLS 

### Aggiornare l'archivio di trust delle applicazioni per SQL\*Plus
<a name="ssl-certificate-rotation-oracle.updating-trust-store.sqlplus"></a>

È possibile aggiornare il trust store per le applicazioni che utilizzano SQL\*Plus per le connessioni. SSL/TLS 

**Nota**  
Quando aggiorni l'archivio di trust puoi conservare i certificati meno recenti oltre ad aggiungere i nuovi certificati.

**Per aggiornare l'archivio di trust delle applicazioni SQL\*Plus**

1. Scaricate il nuovo certificato root che funziona per tutte le AWS regioni e inserite il file nella directory. `ssl_wallet`

   Per ulteriori informazioni sul download del certificato root, consulta [](UsingWithRDS.SSL.md).

1. Esegui i comandi seguenti per aggiornare il wallet Oracle.

   ```
   prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert
         $ORACLE_HOME/ssl_wallet/{{ssl-cert.pem}} -auto_login_only
   ```

   Sostituire il nome del file con il nome del file scaricato.

1. Eseguire il comando seguente per confermare che il wallet è stato correttamente installato.

   ```
   prompt>orapki wallet display -wallet $ORACLE_HOME/ssl_wallet                     
   ```

   L'output dovrebbe contenere le seguenti informazioni.

   ```
   Trusted Certificates: 
   Subject: CN=Amazon RDS Root 2019 CA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,L=Seattle,ST=Washington,C=US
   ```

### Aggiornare l'archivio di trust delle applicazioni per JDBC
<a name="ssl-certificate-rotation-oracle.updating-trust-store.jdbc"></a>

È possibile aggiornare il trust store per le applicazioni che utilizzano JDBC per SSL/TLS le connessioni.

Per ulteriori informazioni sul download del certificato root, consulta [](UsingWithRDS.SSL.md).

Per gli script di esempio che importano i certificati, consulta [Script di esempio per l'importazione di certificati nel tuo archivio di trust](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

## Codice Java di esempio per stabilire connessioni SSL
<a name="ssl-certificate-rotation-oracle.java-example"></a>

L'esempio di codice seguente mostra come impostare la connessione SSL utilizzando JDBC.

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class OracleSslConnectionTest {
    private static final String DB_SERVER_NAME = "<dns-name-provided-by-amazon-rds>";
    private static final Integer SSL_PORT = "<ssl-option-port-configured-in-option-group>";
    private static final String DB_SID = "<oracle-sid>";
    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 SQLException {
        final Properties properties = new Properties();
        final String connectionString = String.format(
                "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))",
                DB_SERVER_NAME, SSL_PORT, DB_SID);
        properties.put("user", DB_USER);
        properties.put("password", DB_PASSWORD);
        properties.put("oracle.jdbc.J2EE13Compliant", "true");
        properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH);
        properties.put("javax.net.ssl.trustStoreType", "JKS");
        properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS);
        final Connection connection = DriverManager.getConnection(connectionString, properties);
        // If no exception, that means handshake has passed, and an SSL connection can be opened
    }
}
```

**Importante**  
Dopo aver stabilito che le connessioni al database utilizzano SSL/TLS e aver aggiornato l'archivio attendibile delle applicazioni, è possibile aggiornare il database per utilizzare i certificati rds-ca-rsa2048-g1. Per istruzioni, consulta la fase 3 in [Aggiornamento del certificato CA modificando l’istanza database o il cluster di database](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating).