2016-08-18 1 views
1

PL/SQLコードを実行して、APEXを使用してWebサイトにデータをポストしようとしています。Oracle APEXを使用して自己署名された、公認されていないWebサイトへのREST呼び出し

問題は、ウェブサイトの証明書が自己署名されているので、それが適正な認定を受けていない、と私は以下のエラーが取得しています、次のとおりです。

ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-28860: Fatal SSL error

私は以下のコード使用しています:

procedure publish_error_tickets

is

req utl_http.req; 
res utl_http.resp; 
url varchar2(4000) := 'https://some_url'; 
name varchar2(4000); 
buffer varchar2(4000); 
content varchar2(4000) := 
'{ 
"issue": { 
    "project_id": 1, 
    "subject": "Example", 
    "priority_id": 4 
    } 
}'; begin 

req := utl_http.begin_request(url, 'POST',' HTTP/1.1'); 
utl_http.set_header(req, 'user-agent', 'mozilla/4.0'); 
utl_http.set_header(req, 'content-type', 'application/json'); 
utl_http.set_header(req, 'Content-Length', length(content)); 

utl_http.write_text(req, content); 
res := utl_http.get_response(req); 
begin 
    loop 
    utl_http.read_line(res, buffer); 
    dbms_output.put_line(buffer); 
    end loop; 

    utl_http.end_response(res); 
exception 
    when utl_http.end_of_body 
    then 
    utl_http.end_response(res); 
end; end; 

私の質問は、httpメッセージの証明書の検証プロセスを何とか無視できますか?サイトの証明書を購入する必要なく、ウェブサイトにアクセスする方法が必要です。事前に

おかげで、同じ問題を抱えて誰のための タマス

+0

utl_htttpをSSL経由で接続するには、証明書をOracleウォレットに追加し、utl_http.set_walletを呼び出す必要があります。 –

+0

はい、私はすでに知っていますが、サーバーがOracle XE上で稼働しているので、Oracleのウォレットにアクセスできないため、javaのようなSSLハンドシェークのすべてのものをバイパスすることが可能かどうか尋ねています。 Oracle XEには回避策がありますが、ウォレットなしで実行できる場合は、まずそれを試してみてください。 – Spigy

+0

はい、あります。私はXEも使用し、Apacheリバース・プロキシを使用して、Oracleがhttpで接続できるようにします。詳細については、http://blog.rhjmartens.nl/2015/07/making-https-webservice-requests-from.html –

答えて

関連する問題