Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

[ORACLE] Diagnostiquer une connexion Oracle TCPS avec orapki et OpenSSL

Lors de la mise en place de connexions TCPS (TLS) dans Oracle, il est essentiel de distinguer les problèmes TLS des problèmes Oracle Net.
La méthode présentée ci‑dessous permet de valider la couche TLS indépendamment d’Oracle, avant toute utilisation de sqlplus.

Cette approche est idéale pour diagnostiquer des erreurs comme ORA‑28864.

Contexte

  • Listener Oracle configuré en TCPS
  • Wallet serveur opérationnel
  • CA interne (root_ca)
  • Objectif : valider certificats, chaîne de confiance et protocole TLS

1. Vérifier le contenu du wallet serveur

 
orapki wallet display -wallet /appli/oracle/wallet_root/tls
 

Objectif

Afficher le contenu du wallet TCPS côté serveur.

À vérifier

  • Présence du certificat serveur (User Certificate)
  • Présence de la CA de confiance (Trusted Certificate)
  • Cohérence des certificats réellement utilisés par le listener TCPS

Si le certificat ou la CA attendue est absente ici, aucune connexion TCPS ne pourra fonctionner.


2. Exporter le certificat de la CA depuis le wallet serveur

 

orapki wallet export  -wallet /appli/oracle/wallet_root/tls  -dn "CN=root_ca"  -cert /tmp/tcps_test/root_ca.pem

Objectif

Exporter le certificat public de la CA utilisée pour signer le certificat serveur.

Détails

  • Le DN CN=root_ca permet d’identifier la CA
  • Le fichier root_ca.pem est généré au format PEM
  • Il pourra être utilisé par :
    • OpenSSL
    • des wallets Oracle clients
    • tout outil TLS standard

3. Créer un wallet client de test minimal

 
orapki wallet add -wallet /tmp/tcps_test/wallet -trusted_cert -cert root_ca.pem

Objectif

Créer un wallet client minimal, servant uniquement de truststore.

Caractéristiques

  • Aucun certificat utilisateur
  • Aucune clé privée
  • Une seule entrée Trusted Certificate (root_ca)

Ce wallet permet de tester la chaîne de confiance TLS, sans interférence avec des configurations existantes.


4. Vérifier le contenu du wallet de test

orapki wallet display -wallet /tmp/tcps_test/wallet

Résultat attendu

  • Un certificat de type Trusted Certificate
  • DN : CN=root_ca
  • Aucun User Certificate

5. Isoler la configuration Oracle Net

export TNS_ADMIN=/tmp/tcps_test
Objectif

Forcer Oracle à utiliser exclusivement la configuration située dans :

/tmp/tcps_test/

Cela concerne :

  • sqlnet.ora
  • tnsnames.ora

Cette isolation garantit un test propre et reproductible, sans héritage de configuration.


6. Vérifier la variable d’environnement

echo $TNS_ADMIN

Résultat attendu

/tmp/tcps_test

Si ce n’est pas le cas, Oracle continuera à utiliser une autre configuration.


7. Tester la couche TLS avec OpenSSL (TLS 1.2)

openssl s_client -connect dtcodevora002l.pld.infrasys16.com:1541 -CAfile /tmp/tcps_test/root_ca.pem -tls1_2

Objectif clé

Tester uniquement la couche TLS, sans Oracle Net ni SQL*Net.

Ce que ce test valide

  • Le listener écoute bien en TCPS
  • Le certificat serveur est correctement présenté
  • La CA valide le certificat serveur
  • TLS 1.2 est accepté
  • Le nom DNS (FQDN) correspond au certificat (SAN/CN)

Résultat attendu

  • Aucun verify error
  • Aucun certificate unknown
  • Connexion TLS établie avec succès

Si ce test fonctionne, la couche TLS est correcte.
Tout problème restant est alors forcément lié à Oracle Net (CN/SAN, SSL_SERVER_DN_MATCH, etc.).


Conclusion

Cette méthode permet de :

  • Valider la chaîne de confiance TLS
  • Tester le listener TCPS indépendamment d’Oracle
  • Diagnostiquer efficacement les erreurs ORA‑28864
  • Séparer clairement :
    • TLS
    • wallets
    • sqlnet.ora
    • Oracle Net

C’est une approche “par couches”, fiable et fortement recommandée pour toute mise en œuvre TCPS.

Les commentaires sont fermés.