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

Откуда:
Сообщений: 13
В Oracle 10.2.0.2 с помощью utl_http.request отправляю запрос на удаленный сервер методом https_post.

declare
   l_output long;

   l_url varchar2(255) default
         'https://www....aspx'||
                 '[?POST]method=check'||'&'||'phonenum=1111111'||'&'||'amount=100';

   l_wallet_path varchar2(255) default
         'file:D:\ORACLE\WALLETS';

begin
  l_output := utl_http.request
             ( url             => l_url,
               proxy           => 'здесь IP -адрес proxy',
               wallet_path     =>l_wallet_path,
               wallet_password => 'psw'
             );
  dbms_output.put_line(trim(substr(l_output,1,255)));
end;

Получаю ошибку:
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1577
ORA-29106: Cannot import PKCS #12 wallet.
ORA-06512: at line 14

В Oracle Wallet добавлены два сертификата: сертификат самого сайта, к которому идет обращение и сертификат того бюро, которое его выдало.Но кроме них мне еще прислали сертификат client.p12. Wallet его импортировать не хочет - не тот формат. Но как я понимаю, именно он и требуется для идентификации? Что делать?
24 май 07, 07:40    [4177961]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10g, https  [new]
I_VK
Member

Откуда:
Сообщений: 1
Может кто-нибудь знает, умеет ли Oracle поддерживать взаимную идентификацию клиента и сервера по SSL. Клиентом выступает сервер Oracle, который посылает запросы к удаленному WEB серверу. И если да, то как добавить клиентский сертификат в ORACLE WALLET (серверные сертификаты успешно импортированы).
26 май 07, 10:34    [4188858]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10g, https  [new]
dba123
Guest
посмотрите
apache\bin\osslconvert.exe ( хотя p12 это именно wallet)
в доке
на сайте у Тома (поиск SSL)

и
прочтите зачем он перед урлом ставит chr(10)
l_url varchar2(255) default '

https://trading.etrade.com/cgi-bin/gx.cgi/AppLogic%2bHome';

учтите, что прокси имеет порт, который м. отличаться от стандартного
'здесь IP -адрес proxy:11111'
29 май 07, 17:08    [4200410]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10g, https  [new]
inna_kir
Member

Откуда:
Сообщений: 13

посмотрите
apache\bin\osslconvert.exe ( хотя p12 это именно wallet)
в доке
на сайте у Тома (поиск SSL)

и
прочтите зачем он перед урлом ставит chr(10)
l_url varchar2(255) default '

https://trading.etrade.com/cgi-bin/gx.cgi/AppLogic%2bHome';

учтите, что прокси имеет порт, который м. отличаться от стандартного
'здесь IP -адрес proxy:11111'


Можно задать банальный вопрос? Уж простите мне мое невежество... Том Кайт в Expert One-on-One Oracle описывает пример использования SSL в пакете UTL_HTTP, используя улучшенную версию этого пакета. Однако, он нигде не упоминает о необходимости установки дополнительного ПО типа apache. Я смотрела на металинке, искала в интернете, но везде пишут в основном как организовать соединение по SSL между клиентом и сервером. Там да, нужно ставить дополнительное ПО. Ну а мне, кроме того, что у меня стоит Oracle EE 10.2 надо ставить что-то еще? У меня между клиентом и сервером Oracle обычное соединение, но сервер Oracle еще должен отправлять запросы на WEB-сервер. Я так и не нашла прямого ответа... (уж или я такая слепая или глупая, решайте сами).

Пробовала через IE и Mozilla, все отлично работает. А Oracle сейчас дает ошибку
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1577
ORA-29268: HTTP client error
ORA-06512: at line 12

Мне все-таки не удается импортировать клиентский сертификат. Я его не сама создавала, мне его прислали.В документации к Wallet написано, что если сертификат создан третьей стороной, то его надо сначала установить например в IE, а затем экспортировать в формате base64. Я пробовала, но у меня клиентский сертификат идет с приватным ключом. А ключ не экспортируется. Certificate Export Wizard не позволяет экспортировать приватный ключ.
31 май 07, 11:20    [4210089]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10g, https  [new]
Пчеловод
Member

Откуда: Москва
Сообщений: 130
inna_kir
Мне все-таки не удается импортировать клиентский сертификат. Я его не сама создавала, мне его прислали.В документации к Wallet написано, что если сертификат создан третьей стороной, то его надо сначала установить например в IE, а затем экспортировать в формате base64. Я пробовала, но у меня клиентский сертификат идет с приватным ключом. А ключ не экспортируется. Certificate Export Wizard не позволяет экспортировать приватный ключ.
Такой вопрос - если сертификат выдан третьей стороной, то как его вообще можно импортировать в OWM? Ведь OWM требует сначала создать Wallet (это без проблем), после чего надо обязательно сгенерировать файл запроса. Причем возможности импортировать файл запроса нету, а при попытке импорта сертификата Wallet ругается, что мол нету подходящего файла запроса или сертификат ошибочный...
Как разрешить данную дилему?!
14 июн 07, 12:21    [4266192]     Ответить | Цитировать Сообщить модератору
 Re: Oracle 10g, https  [new]
Пчеловод
Member

Откуда: Москва
Сообщений: 130
Что уже сделано:

  • есть подписанный сертификат .pfx (от Thawte.com)
  • установил его и убедился, что он подцепился в MS IE
  • экспортировал сертификат из IE в файл export.crt (кодировка base64)
  • скачал корневые сертификаты с http://www.thawte.com/roots/ , распаковал и импортировал их в качестве trusted certificates в OWM (кодировка base64)
  • при попытке импортировать сертификат export.crt в Oracle Wallet Manager получаю ошибку:
    ******
    User certificate installation failed. Possible errors:
    - Input was not a valid certificate
    - No matching certificate request was found
    - CA Certificate needed for certificate chain not found.
    Please install them first
    ******

    Что не так? Кто виноват и что делать?!
  • 14 июн 07, 14:13    [4267012]     Ответить | Цитировать Сообщить модератору
     Re: Oracle 10g, https  [new]
    dba123
    Guest
    inna_kir
    У меня между клиентом и сервером Oracle обычное соединение, но сервер Oracle еще должен отправлять запросы на WEB-сервер. Я так и не нашла прямого ответа...
    Пробовала через IE и Mozilla, все отлично работает. А Oracle сейчас дает ошибку
    можно посмотреть Note:169768.1

    например, имеем hp-шный сервер с установленным HP Sytem Management Software
    -можем зайти на него с помощью браузера https://1.2.3.4:1234
    -скопируем его самоподписанный сертифткат в файл в формате "Base64 encoded"
    (ткнуть в замок -> закладка Details -> Copy to File)
    - теперь на стороне ора-сервера создадим новую папку для хранения тестового "бумажника"
    etc/ORACLE/WALLET/test or d:\...
    - запустим wallet manager (owm)
    - создадим НОВОЕ хранилище сертификатов, чтобы он создал цепочку оракловых
    сертификатов, если предложит создать клиентский cert - No, записываем wallet's пароль
    - сохраним созданное в новом каталоге не делая хранилище "по умолчанию"
    - теперь импортируем HP-шный, закладка 'operations' -> 'Import Trusted Certificate'
    - еще раз сохраняем 'Save as' в тест-каталог

    можно пробывать, без прокси, из каталога test, пароль 12345
    select  utl_http.request 'https://1.2.3.4:1234',null,'file:/etc/ORACLE/WALLET/test','12345') from dual;
    должен вернуть страничку
    можно посмотреть более реальный пример SHOW_URL с прокси и т.д. в доке
    Application Developer's Guide - Fundamentals
    11. Developing Applications with the PL/SQL Web Toolkit

    и желательно предварительно сохранить рабочее хранилище на дискетку, если имеется такое
    14 июн 07, 14:54    [4267309]     Ответить | Цитировать Сообщить модератору
    Все форумы / Oracle Ответить