X

Oracle Application Express
Tipps, Tricks und Best Practice

APEX, HTTPS, Zertifikate und das Oracle Wallet

Carsten Czarski
Consulting Member of technical Staff

Die Artikelreihe zum Thema "Application Express und REST Services" pausiert für eine Ausgabe - dafür schieben wir einen Tipp ein, der zumindest mit dem Thema verwandt ist. Es geht HTTPS-Requests einer APEX-Anwendung. Zunächst funktioniert ein solcher ganz genauso wie ein HTTP-Aufruf - man verwendet einfach die HTTPS-URL. Zum Testen nehmen wir die HTTPS-URL des USGS (US Geological Survey), die bereits im ersten Community Tipp zum Thema REST Services und Application Express ein Thema war.

select apex_web_service.make_rest_request(
    p_url => 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson', 
    p_http_method => 'GET' ) from dual;

Der erste Versuch schlägt jedoch fast immer fehl ...

Fehlerbericht -
ORA-29273: HTTP-Anforderung nicht erfolgreich
ORA-29024: Zertifikatvalidierung nicht erfolgreich
ORA-06512: in "SYS.UTL_HTTP", Zeile 380

Blogs und Diskussionsforen sind voll von Fragen, was bei dieser Fehlermeldung zu tun ist - in diesem Tipp erfahren Sie es:

Die Fehlermeldung besagt, dass die Datenbank das SSL-Zertifikat, mit dem sich der Webserver ausgewiesen hat, nicht validieren konnte. Für diese Validierung muss ein Oracle Wallet eingerichtet und dann in Application Express konfiguriert werden. Vorab jedoch ein paar einfache, erklärende Worte zum Thema SSL-Zertifikate (die Erklärungen sind sicherlich nicht vollständig, für das Verständnis dieses Tipps sollten sie jedoch hinreichend sein):

Wenn Sie eine HTTPS-Verbindung zu einem Server aufbauen, weist dieser sich mit einem SSL-Zertifikat aus. Ein solches Zertifikat funktioniert wie eine Art Personalausweis: es weist aus, dass der Server, der auf die Anfrage antwortet, tatsächlich der ist, den man mit der URL angesprochen hat.

Nun stellt sich natürlich die Frage, ob ein solcher "Ausweis" auch echt ist - und diese Echtheit wird von der Certificate Authority zertifiziert: das SSL-Zertifikat des Webservers wird mit einem Zertifikat der CA "unterschrieben". Das Zertifikat der CA kann nun wiederum von einer weiteren CA "unterschrieben" werden - womit das nächste Zertifikat ins Spiel kommt. Diese Kette (Certificate Chain) kann auch noch länger werden; irgendwo muss aber ein Ende sein - und das ist ein CA-Zertifikat, dem einfach vertraut wird, auch wenn es nicht "unterschrieben" ist (Trusted Certificate).

In einem Web-Browser wie Firefox, Chrome oder anderen sind alle gängigen CA-Zertifikate vorinstalliert - so kann man bequem im Internet surfen. Die Oracle-Datenbank verwaltet solche Zertifikate in einem Wallet - dieses muss jedoch zuerst erzeugt werden, es ist zu Beginn leer und die nötigen CA-Zertifikate müssen hinzugefügt werden.

Dieser Artikel beschreibt, wie man ein Oracle Wallet erzeugt, wie man die nötigen CA-Zertifikate in dieses lädt und schließlich, wie man das Wallet zentral in Application Express einrichtet, so dass es in allen Workspaces und Anwendungen genutzt werden kann (ganzen Artikel lesen).

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.