En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Comment puis-je utiliser une connexion SSL pour me connecter à mon instance de base de données Amazon RDS for Oracle ?

Lecture de 8 minute(s)
0

Je souhaite utiliser une connexion SSL (Secure Socket Layer) pour me connecter à mon instance de base de données Amazon Relational Database Service (Amazon RDS) for Oracle.

Brève description

Lorsque vous provisionnez une instance de base de données, Amazon RDS crée un certificat SSL, puis installe le certificat sur l'instance. Ces certificats sont signés par une autorité de certification. Le certificat SSL inclut le point de terminaison de l'instance de base de données comme nom commun du certificat SSL. Cela protège l'instance contre les attaques d'usurpation d'identité. Le certificat SSL créé par Amazon RDS est l'entité racine approuvée et fonctionne pour les cas d'utilisation les plus courants.

Amazon RDS for Oracle prend en charge les versions 1.0 et 1.2 de Transport Layer Security (TLS). Pour utiliser l'option Oracle SSL, utilisez le paramètre d'option SQLNET.SSL_VERSION de votre groupe d'options. Les valeurs suivantes sont autorisées pour ce paramètre d'option :

  • 1.0 - Les clients peuvent utiliser TLS 1.0 uniquement pour se connecter à l'instance de base de données.
  • 1.2 - Les clients peuvent utiliser TLS 1.2 uniquement pour se connecter à l'instance de base de données.
  • 1.2 ou 1.0 - Les clients peuvent utiliser TLS 1.0 ou 1.2 pour se connecter à l'instance de base de données.

Pour les options SSL Oracle existantes, SQLNET.SSL_VERSION est défini sur 1.0" par défaut. Vous pouvez modifier ce paramètre si nécessaire.

Résolution

Limites

Vous pouvez utiliser le protocole SSL ou Native Network Encryption (NNE) sur la même instance de base de données RDS for Oracle, mais pas les deux. Si vous utilisez le chiffrement SSL, assurez-vous de désactiver tout autre chiffrement de connexion. Pour plus d'informations, consultez la section Chiffrement réseau natif Oracle.

Ajouter l'option SSL à un groupe d'options

Ajoutez l'option SSL dans votre groupe d'options client pour activer le mode SSL pour vos instances de base de données RDS for Oracle. Pour activer le mode SSL, procédez comme suit :

  1. Créez un nouveau groupe d'options ou choisissez un groupe d'options existant auquel ajouter l'option SSL.
  2. Ajoutez l'option SSL au groupe d'options. Si vous souhaitez utiliser des suites de chiffrement vérifiées FIPS pour les connexions SSL uniquement, définissez l'option FIPS.SSLFIPS_140 sur TRUE.
  3. Créez une nouvelle instance de base de données RDS for Oracle et associez-y le groupe d'options. Vous pouvez également modifier une instance de base de données RDS for Oracle pour y associer le groupe d'options.

Utilisez orapki pour configurer un portefeuille chez votre client

Sur votre client, définissez la variable d'environnement ORACLE_HOME sur l'emplacement de votre répertoire personnel Oracle.

  1. Accédez au répertoire du client :

    $ cd app/client/product/19.0.0/client_1
  2. Confirmez le chemin :

    [client_1]$ pwd
    /home/ec2-user/app/client/product/19.0.0/client_1
  3. Définissez le chemin pour Oracle :

    [client_1]$ export ORACLE_HOME=/home/ec2-user/app/client/product/19.0.0/client_1
  4. Ajoutez la variable d’environnement &ORACLE_HOME/lib to the LD_LIBRARY_PATH :

    [client_1]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
  5. Créez le répertoire du portefeuille :

    [client_1]$ mkdir $ORACLE_HOME/ssl_wallet
  6. Accédez au répertoire nouvellement créé :

    [client_1]$ cd ssl_wallet
  7. Téléchargez le bundle de certificats :

    [ssl_wallet]$ wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
    --2023-08-15 15:20:05-- https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
    Resolving http://truststore.pki.rds.amazonaws.com (http://truststore.pki.rds.amazonaws.com)... 18.165.98.84, 18.165.98.93, 18.165.98.125, ...
    Connecting to http://truststore.pki.rds.amazonaws.com (http://truststore.pki.rds.amazonaws.com)|18.165.98.84|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 178780 (175K) [application/octet-stream]
    Saving to: 'global-bundle.pem'
    
    100%[==============================================================================>] 178,780 --.-K/s in 0.002s
    
    2023-08-15 15:20:05 (80.1 MB/s) - 'global-bundle.pem' saved [178780/178780]
  8. Créez le portefeuille :

    [ssl_wallet]$ orapki wallet create -wallet . -auto_login_only
    Oracle PKI Tool Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Operation is successfully completed.
  9. Ajoutez les certificats que vous avez téléchargés vers le fichier du portefeuille.

Télécharger un fichier PEM de bundle de certificats global ou spécifique à une région

Vous devez ensuite télécharger un bundle de certificats à utiliser lorsque vous vous connectez à la base de données RDS for Oracle. Pour plus d'informations, consultez la section Bundles de certificats pour des régions AWS spécifiques.

La fonction orapki du portefeuille d'Oracle ne peut importer les certificats initiaux qu'à partir d'un fichier de bundle PEM. Vous ne pouvez donc pas importer un bundle contenant plusieurs fichiers PEM dans le portefeuille. Pour activer les connexions SSL pour l'un des certificats (rds-ca-rsa2048-g1, rds-ca-rsa4096-g1), vous devez séparer les racines individuelles des fichiers PEM spécifiques à la région AWS.

Pour fractionner le fichier PEM, utilisez la méthode suivante :

cat us-east-1-bundle.pem |awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'

[oracle@ip-***-**-**-*** wallet]$ ls -lrt
total 28
-rw-r--r--. 1 oracle oinstall 7488 May 25  2021 us-east-1-bundle.pem
-rw-r--r--. 1 oracle oinstall 1456 Sep 16 05:41 cert.pem
-rw-r--r--. 1 oracle oinstall  989 Sep 16 05:41 cert4.pem
-rw-r--r--. 1 oracle oinstall 2139 Sep 16 05:41 cert3.pem
-rw-r--r--. 1 oracle oinstall 1448 Sep 16 05:41 cert2.pem
-rw-r--r--. 1 oracle oinstall 1456 Sep 16 05:41 cert1.pem

Ajoutez ensuite tous les fichiers PEM au portefeuille. Vous ignorez quel fichier PEM appartient à chaque certificat. Aussi, ajoutez tous les fichiers PEM au portefeuille.

orapki wallet add -wallet /data/wallet -trusted_cert -cert cert.pem -auto_login_only
orapki wallet add -wallet /data/wallet -trusted_cert -cert cert1.pem -auto_login_only
orapki wallet add -wallet /data/wallet -trusted_cert -cert cert2.pem -auto_login_only
orapki wallet add -wallet /data/wallet -trusted_cert -cert cert3.pem -auto_login_only
orapki wallet add -wallet /data/wallet -trusted_cert -cert cert4.pem -auto_login_only

Utiliser openssl pour télécharger uniquement le fichier de certificat racine

Vous pouvez également utiliser openssl pour télécharger uniquement le fichier de certificat racine. Exécutez la commande suivante dans le serveur Red Hat Linux :

openssl s_client -connect user.ckyx0wdxr13x.us-east-1.rds.amazonaws.com:2484 -showcerts </dev/null 2>/dev/null | sed -n '/s:C = US.*Root/,$p' | sed -n '/BEGIN CERT/,/END CERT/p'> root.pem

Après avoir exécuté cette commande, vous pouvez ajouter le fichier créé (root.pem) à votre portefeuille Oracle. Reportez-vous à l’exemple suivant :

-----BEGIN CERTIFICATE-----
MIID/zCCAuegAwIBAgIRAPVSMfFitmM5PhmbaOFoGfUwDQYJKoZIhvcNAQELBQAw
gZcxCzAJBgNVBAYTAlVTMSIwIAYDVQQKDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJ
bmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMQswCQYDVQQIDAJXQTEwMC4GA1UEAwwn
QW1hem9uIFJEUyB1cy1lYXN0LTEgUm9vdCBDQSBSU0EyMDQ4IEcxMRAwDgYDVQQH
DAdTZWF0dGxlMCAXDTIxMDUyNTIyMzQ1N1oYDzIwNjEwNTI1MjMzNDU3WjCBlzEL
MAkGA1UEBhMCVVMxIjAgBgNVBAoMGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4x
EzARBgNVBAsMCkFtYXpvbiBSRFMxCzAJBgNVBAgMAldBMTAwLgYDVQQDDCdBbWF6
b24gUkRTIHVzLWVhc3QtMSBSb290IENBIFJTQTIwNDggRzExEDAOBgNVBAcMB1Nl
YXR0bGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDu9H7TBeGoDzMr
dxN6H8COntJX4IR6dbyhnj5qMD4xl/IWvp50lt0VpmMd+z2PNZzx8RazeGC5IniV
5nrLg0AKWRQ2A/lGGXbUrGXCSe09brMQCxWBSIYe1WZZ1iU1IJ/6Bp4D2YEHpXrW
bPkOq5x3YPcsoitgm1Xh8ygz6vb7PsvJvPbvRMnkDg5IqEThapPjmKb8ZJWyEFEE
QRrkCIRueB1EqQtJw0fvP4PKDlCJAKBEs/y049FoOqYpT3pRy0WKqPhWve+hScMd
6obq8kxTFy1IHACjHc51nrGII5Bt76/MpTWhnJIJrCnq1/Uc3Qs8IVeb+sLaFC8K
DI69Sw6bAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE7PCopt
lyOgtXX0Y1lObBUxuKaCMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOC
AQEAFj+bX8gLmMNefr5jRJfHjrL3iuZCjf7YEZgn89pS4z8408mjj9z6Q5D1H7yS
jNETVV8QaJip1qyhh5gRzRaArgGAYvi2/r0zPsy+Tgf7v1KGL5Lh8NT8iCEGGXwF
g3Ir+Nl3e+9XUp0eyyzBIjHtjLBm6yy8rGk9p6OtFDQnKF5OxwbAgip42CD75r/q
p421maEDDvvRFR4D+99JZxgAYDBGqRRceUoe16qDzbMvlz0A9paCZFclxeftAxv6
QlR5rItMz/XdzpBJUpYhdzM0gCzAzdQuVO5tjJxmXhkSMcDP+8Q+Uv6FA9k2VpUV
E/O5jgpqUJJ2Hc/5rs9VkAPXeA==
-----END CERTIFICATE-----
orapki wallet add -wallet /data/wallet -trusted_cert -cert test.pem -auto_login_only
Oracle PKI Tool Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.

Operation is successfully completed.
[oracle@ip-***-**-**-***  pem]$ orapki wallet display -wallet /data/wallet
Oracle PKI Tool Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.

Requested Certificates:
User Certificates:
Trusted Certificates:
Subject:        L=Seattle,CN=Amazon RDS us-east-1 Root CA RSA2048 G1,ST=WA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,C=US
[oracle@ip-172-31-19-245 pem]$ orapki cert display -cert test.pem
Oracle PKI Tool Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.

Subject:        L=Seattle,CN=Amazon RDS us-east-1 Root CA RSA2048 G1,ST=WA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,C=US
Issuer:         L=Seattle,CN=Amazon RDS us-east-1 Root CA RSA2048 G1,ST=WA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,C=US
Valid Until:    Wed May 25 23:34:57 UTC 2061

[oracle@ip-***-**-**-***  admin]$ sqlplus admin/*******@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=user.ckyx0wdxr13x.us-east-1.rds.amazonaws.com)(PORT=2484))(CONNECT_DATA=(SID=USER)))'

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Sep 17 07:12:34 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Last Successful login time: Sun Sep 17 2023 06:07:26 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0

SQL> SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL;

SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')
--------------------------------------------------------------------------------
tcps

Mettre à jour les fichiers sqlnet.ora et tnsnames.ora

Puis, accédez au répertoire réseau ou administrateur. Localisez les fichiers sqlnet.ora et tnsnames.ora et mettez-les à jour en conséquence. Si le fichier tnsnames.ora n'est pas présent, utilisez la méthode suivante pour le créer :

[~]$ cd app/client/product/19.0.0/client_1/network/admin
[admin]$ cat > tnsnames.ora
net_service_name =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS =
         (PROTOCOL = TCPS)
         (HOST = user.ckyx0wdxr13x.us-east-1.rds.amazonaws.com)
         (PORT = 2484)
       )
    )
     (CONNECT_DATA =
      (SID = ORCL)
    )
    (SECURITY =
      (SSL_SERVER_CERT_DN = "C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=endpoint")
    )
  )
:wq!

Mettez à jour le fichier sqlnet.ora pour inclure des informations actualisées pour vos connexions SLL :

[admin]$ vi sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /data/wallet)))
SSL_CLIENT_AUTHENTICATION = TRUE
SSL_VERSION = 1.0
SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
SSL_SERVER_DN_MATCH = ON
:wq!

Connectez-vous à votre instance de base de données RDS for Oracle à l'aide de l'option SSL

Après avoir configuré SQL*Plus pour utiliser le protocole SSL, vous pouvez vous connecter à votre instance de base de données RDS for Oracle à l'aide de l'option SSL. Avant de vous connecter, vous pouvez éventuellement exporter la valeur TNS_ADMIN qui pointe vers le répertoire contenant les fichiers tnsnames.ora et sqlnet.ora. Cela signifie que SQL*Plus peut rechercher les fichiers de manière cohérente. Consultez l'exemple de commande suivant qui exporte la valeur TNS_ADMIN :

[client_1]$export TNS_ADMIN = ${ORACLE_HOME}/network/admin

Remarque : Avant de vous connecter à votre instance de base de données via SSL, vérifiez les points suivants :

  • Le certificat racine RDS est téléchargé et ajouté à un fichier de portefeuille.
  • Votre entrée TNS contient le numéro de port SSL approprié.
  • Votre groupe de sécurité Amazon RDS est configuré pour autoriser les connexions entrantes depuis vos machines via le port SSL.
  • Le pare-feu ou les politiques de sécurité sont configurés de manière appropriée pour autoriser le trafic sur le port SSL depuis Amazon RDS.

Informations connexes

Configuration d'une connexion SSL via JDBC

Mise à jour des applications pour se connecter aux instances de base de données Oracle à l'aide de nouveaux certificats SSL/TLS

Résolution des problèmes liés aux connexions SSL

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois