Si queremos agregar más certificados a un wallet ya creado, primero debemos evaluar que sean certificados trusted, que nos permitan confiar en los datos que vienen de fuentes externas, estos usualmente se utiliza al hora de consumir servicios web que usen https y necesiten una comunicación segura.
Debemos tener en cuenta que a la hora de importar un nuevo certificado a nuestro wallet existente, estos deben ser certificados intermediarios o trusted, ya que los certificados de usuario y de raíz únicamente se utilizan durante la creación de nuestro wallet, y se utilizarán para la evaluación de nuestro certificado de usuario, así al importar nuestro certificado de usuario firmado, las llaves que se crean durante la creación de nuestro wallet deben coincidir con nuestro certificado request y raíz.
Para agregar el nuevo certificado a nuestro wallet debemos seguir los siguientes pasos:
Debemos pasar al servidor el nuevo certificado intermediario, el mío se llama etax.cer, en este caso mi wallet se encuentra en la siguiente ruta y se llama wallet_prod:
/u01/app/oracle/certificado
oracle@db2:/u01/app/oracle/certificado$ ls etax.cer wallet_prod/
Ejecutamos el siguiente comando para importar el nuevo certificado al wallet:
oracle@db2:/u01/app/oracle/certificado$ orapki wallet add -wallet wallet_prod -trusted_cert -cert etax.cer -pwd prueba2020
Desplegamos el wallet para verificar que el nuevo certificado se haya importado
correctamente:
oracle@db2:/u01/app/oracle/certificado$ orapki wallet display -wallet wallet_prod
Oracle PKI Tool : Version 12.1.0.2 Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Trusted Certificates: Subject: CN=GlobalSign Extended Validation CA - SHA256 - G3,O=GlobalSign nv-sa,C=BE Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3 Subject: CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C= US Subject: CN=bccr.fi.cr,O=Banco Central de Costa Rica,OU=Tecnologias de In formacion,STREET=Avenidas Central y Primera\, Calles 2 y 4,L=San Jose,ST=San Jos e,C=CR,1.3.6.1.4.1.311.60.2.1.3=CR,SERIAL_NUM=Government Entities,2.5.4.15=Gover nment Entity Subject: CN=*.etaxcr.com Subject: CN=Thawte TLS RSA CA G1,OU=www.digicert.com,O=DigiCert Inc,C=US
Hola amigo, me salvaste, vengo sufriendo hace días, en el material oficial de oracle no habla nada de agregar trusted_cert al momento de agregar un certificado, gracias amigo
Buenísimo, me alegra haber ayudado!
Hola, Emmanuel:
Tengo un incidente al momento de consumir un REST API y tal vez pueda estar relacionado con este tema de los certificados en los Oracle Wallet.
ORA-29273: HTTP request failed
ORA-28759: failure to open file
ORA-06512: at «SYS.UTL_HTTP», line 380
ORA-06512: at «SYS.UTL_HTTP», line 1148
Ya el certificado lo adicioné al Wallet
Habría que hacer un análisis de todo el proceso que esta haciendo, hay varias opciones:
1. El servicio si usa https, debe añadirle al wallet los certificados CA y root para hacer el request.
2. El ACL de base de datos debe estar habilitado para el host al que se realiza el request con el connect y el resolve.
3. También podría haber algún tipo de bloqueo ya por algún otro agente externo como puertos de firewall o conexión, etc