utl_http isteği gönderimindeki ORA-29024: Certificate validation failure hatası
Oracle veritabanlarından https protokolünden dışardaki bir sunucuya utl_http ile istek gönderildiğinde, güvenli sertifikalarda root ve intermediate sertifikası bulunmuyorsa “ORA-29024: Certificate validation failure” şeklinde hata almaktadır. Hatanın alınmaması için wallet içindeki mevcut sertifikalar silinip, sadece root ve intermediate sertifikası güvenilir sertifikalara eklenmelidir.
Aşağıdaki gibi https üzerinden istek gönderildiğinde sertifika sorununa bağlı olarak ilgili hata alınmaktadır.
SQL> select utl_http.request ('https://www.interiva.com.tr/WebService/Service.asmx',NULL,'file:/u01/app/oracle/admin/ORCL/wallet','1234567') from dual;
ERROR at line 1:
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1720
ORA-29024: Certificate validation failure
ORA-06512: at line 1
orapki ile mevcut güvenilir sertifikaları görüntülediğimizde ;
-bash-4.3$ orapki wallet display -wallet /u01/app/oracle/admin/ORCL/wallet -pwd 1234567
Oracle PKI Tool : Version 11.2.0.4.0 - Production
Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Trusted Certificates:
Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3
Subject: CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE
Subject: CN=*.interiva.com.tr,O=INTERIVA,L=ÇANKAYA,ST=ANKARA,C=TR
Subject: CN=GlobalSign RSA OV SSL CA 2018,O=GlobalSign nv-sa,C=BE
Yukarıdaki örnekte , son kullanıcı sertifikası ile root ve intermediate sertifikaları birleştirilip , oluşan sertifika güvenilir olarak eklenmiştir. Olması gereken sadece root ve intermediate sertifikası kalmasıdır.
Mevcut serfikaları aşağıdaki gibi çıkarabiliriz.
-bash-4.3$ orapki wallet remove -wallet /u01/app/oracle/admin/ORCL/wallet -trusted_cert_all -pwd 1234567
Oracle PKI Tool : Version 11.2.0.4.0 - Production
Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
Sonrasında sadece root ve intermediate sertifikası eklenmelidir.
-bash-4.3$ orapki wallet add -wallet /u01/app/oracle/admin/ORCL/wallet -trusted_cert -cert "/u01/app/oracle/admin/ORCL/wallet/GlobalSignChain.crt" -pwd 1234567
Oracle PKI Tool : Version 11.2.0.4.0 - Production
Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
Nihayi durumu görüntülediğimizde aşağıdaki gibi bir çıktı oluşmalıdır.
-bash-4.3$ orapki wallet display -wallet /u01/app/oracle/admin/ORCL/wallet -pwd 1234567
Oracle PKI Tool : Version 11.2.0.4.0 - Production
Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Trusted Certificates:
Subject: CN=GlobalSign RSA OV SSL CA 2018,O=GlobalSign nv-sa,C=BE
Tekrar https isteği gönderildiğinde hata alınmayacaktır.