Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 ORA-28759 Сбой при открытии файла  [new]
ship_A
Member

Откуда:
Сообщений: 1
где посмотреть название файла, в котором есть ошибка
3 май 05, 15:19    [1513556]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: ORA-28759 Сбой при открытии файла  [new]
Владимир СА
Member

Откуда:
Сообщений: 7654
Хотелось бы помощи от ГУРУ...

ORACLE стоит под WIN SERVER 2012 r2

Настроено ACL:
SELECT host, lower_port, upper_port, acl FROM dba_network_acls

HOSTLOWER_PORTUPPER_PORTACL
*.proZZZ.ru<пусто><пусто>/sys/acls/ZZZZ_test.xml

select acl, principal, privilege, is_grant, invert from dba_network_acl_privileges

ACLPRINCIPALPRIVILEGEIS_GRANTINVERT
/sys/acls/ZZZZ_test.xml<USER>connecttruefalse
/sys/acls/ZZZZ_test.xml<USER>resolvetruefalse


Кинут сертификат...
orapki wallet add -wallet <Путь>\wallet -trusted_cert -cert <Путь>\<Сертификат>.cer -pwd <PASSWORD>
orapki wallet add -wallet <Путь>\wallet -trusted_cert -cert <Путь>\<Сертификат_1>.cer -pwd <PASSWORD>
orapki wallet add -wallet <Путь>\wallet -trusted_cert -cert <Путь>\<Сертификат_2>.cer -pwd <PASSWORD>

При запуске:
DECLARE
    req             utl_http.req;
    resp            utl_http.resp;
    content VARCHAR2(32767);
BEGIN
    
    UTL_HTTP.set_wallet('file:D:\oracle\admin\<MY_DB>\wallet', 'PASSWORD');
    
    req := utl_http.begin_request('https://httpsZZZ.proZZZ.ru/ZZZZ/index.pl');
    
    resp := utl_http.get_response(req);
    
    UTL_HTTP.READ_TEXT(resp,content,32766);
    
    utl_http.end_response(resp);
    
    dbms_output.put_line('content:');
    dbms_output.put_line(content);
    dbms_output.put_line('-----');

EXCEPTION
    WHEN utl_http.end_of_body THEN utl_http.end_response(resp);
END;
Выдает ошибку
Error at line 1
ORA-29273: сбой запроса HTTP
ORA-06512: на "SYS.UTL_HTTP", line 1130
ORA-28759: сбой при открытии файла
ORA-06512: на line 10 (это: req := utl_http.begin_request('https://httpsZZZ.proZZZ.ru/ZZZZ/index.pl'); )

В инете нашел:
Некоторые ошибки и их устранение
автор
ORA-28759: сбой при открытии файла
....
Суть проблемы в том, что Oracle Wallet Manager (OWM) при редактировании wallets меняет разрешения на доступ к файлу. В результате файл становится доступным только пользователю, от которого был запущен OWM.
Решение:
Измените разрешения на доступ к файлу так, чтобы пользователь, от которого работает Oracle DB, имел доступ хотя бы на чтение.

Вот здесь я не понял кому доступ дать на чтение ???
3 дек 15, 10:36    [18506504]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28759 Сбой при открытии файла  [new]
UDW
Member

Откуда: Самара
Сообщений: 1094
Владимир СА,

Судя по всему - процессу system winows, под которым и запущен Oracle.
3 дек 15, 10:51    [18506654]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28759 Сбой при открытии файла  [new]
Владимир СА
Member

Откуда:
Сообщений: 7654
UDW
Владимир СА,

Судя по всему - процессу system winows, под которым и запущен Oracle.
Спа...
Точно... сертификаты надо чтобы SYSTEM видел...
Блин... чего я так лоханулся...
3 дек 15, 11:21    [18506919]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: ORA-28759 Сбой при открытии файла  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1116
Не минула и меня чаша сия.
Создал директорию и прочитал файл, чтобы проверить, что проблема не в правах.
Wallet manager открывает его с тем же паролем, что указываю в utl_http.set_wallet.
Что еще?

+
Connected to Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 
Connected as system@//192.168.1.3/TEST

SQL> create directory TEST as 'C:\ora18\wallet';

Directory created

SQL>begin
  dbms_network_acl_admin.create_acl (
    acl         => 'utl_http.xml',
    description => 'HTTP Access',
    principal   => 'SYSTEM',
    is_grant    => TRUE,
    privilege   => 'connect',
    start_date  => null,
    end_date    => null
  );

  dbms_network_acl_admin.add_privilege (
    acl        => 'utl_http.xml',
    principal  => 'SYSTEM',
    is_grant   => TRUE,
    privilege  => 'resolve',
    start_date => null,
    end_date   => null
  );

  dbms_network_acl_admin.assign_acl (
    acl        => 'utl_http.xml',
    host       => '*',
    lower_port => 443,
    upper_port => 443
  );
  commit;
end;
/

PL/SQL procedure successfully completed


SQL> Connected to Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 
Connected as system@//192.168.1.3/TEST


SQL> CREATE OR REPLACE PROCEDURE http_client AS
  2  
  3      lo_req          utl_http.req;
  4      lo_resp         utl_http.resp;
  5      resp_text       varchar2(30000);
  6      f utl_file.file_type;
  7  begin
  8      f := utl_file.fopen('TEST', 'ewallet.p12', 'r');
  9      utl_file.get_line(f, resp_text, 10000);
 10      utl_file.fclose(f);
 11      dbms_output.put_line(resp_text);
 12  
 13      utl_http.set_transfer_timeout(180);
 14  
 15      utl_http.set_wallet('file:c:\ora18\wallet\ewallet.p12', '*******');
 16      lo_req := utl_http.begin_request('https://***.ru');
 17      lo_resp := utl_http.get_response(lo_req);
 18      utl_http.read_text(lo_resp, resp_text, 30000);
 19      utl_http.end_response(lo_resp);
 20  end;
 21  /

Procedure created

SQL> exec http_client;
begin http_client; end;

ORA-29273: сбой запроса HTTP
ORA-28759: сбой при открытии файла
ORA-06512: на  "SYS.UTL_HTTP", line 380
ORA-06512: на  "SYS.UTL_HTTP", line 1148
ORA-06512: на  "SYSTEM.HTTP_CLIENT", line 16
ORA-06512: на  line 1

SQL> 


К сообщению приложен файл. Размер - 39Kb
19 ноя 18, 07:09    [21737739]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28759 Сбой при открытии файла  [new]
-2-
Member

Откуда:
Сообщений: 14095
 15      utl_http.set_wallet('file:c:\ora18\wallet\ewallet.p12', '*******');
параметр должен указывать путь к кошельку, не к сертификату.
19 ноя 18, 07:27    [21737741]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28759 Сбой при открытии файла  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1116
Спасибо.
Продолжу с ORA-29024
19 ноя 18, 08:13    [21737756]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28759 Сбой при открытии файла  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1116
Прочитал, что надо импортировать иерархию сертификатов, кроме сертификата сайта.
Не знаю, правильно ли сделал. Пока ORA-29024.

orapki wallet create -wallet c:\dm\wallet -pwd "test=1234" -auto_login
orapki wallet add -wallet c:\dm\wallet -trusted_cert -cert "DSTRootCAX3.p7c" -pwd "test=1234"

Права доступа - добавил SYSTEM, скопировал ораклу.

orapki wallet display -wallet c:\ora11\orahome\wallet
Oracle PKI Tool : Version 11.2.0.1.0 - Production
Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.


Requested Certificates:
User Certificates:
Trusted Certificates:
Subject:        CN=DST Root CA X3,O=Digital Signature Trust Co.
Subject:        OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US
Subject:        OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US


К сообщению приложен файл. Размер - 113Kb
19 ноя 18, 11:17    [21737907]     Ответить | Цитировать Сообщить модератору
 Re: ORA-28759 Сбой при открытии файла  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1116
С sql.ru соединился успешно.

+
CREATE OR REPLACE NONEDITIONABLE PROCEDURE http_client AS
    lo_req          utl_http.req;
    lo_resp         utl_http.resp;
    resp_text       varchar2(30000);
begin
    utl_http.set_wallet('file:c:\ora12\orahome\wallet', 'test=1234');
    lo_req := utl_http.begin_request(url => 'https://sql.ru/forum/oracle',  https_host => 'sql.ru');
    lo_resp := utl_http.get_response(lo_req);
    utl_http.read_text(lo_resp, resp_text, 30000);
    utl_http.end_response(lo_resp);
    dbms_output.put_line(resp_text);
end;  

Connected to Oracle Database 12c Standard Edition Release 12.2.0.1.0 
Connected as user1@//maslovd.ru/TEST

SQL> set serveroutput on;
SQL> exec http_client;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>


PL/SQL procedure successfully completed


SQL> 


С этим сайтом - видимо, надо достать еще сертификат, который не дает Firefox
Просмотрел его программой OpenSSL ( openssl s_client -showcerts )

---
Certificate chain
0 s:/C=RU/ST=PFO/L=NiNo/O=Internet Widgits Pty Ltd/CN=*
i:/C=RU/ST=PFO/L=NiNo/O=Internet Widgits Pty Ltd/CN=*
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
30 ноя 18, 11:45    [21749719]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить