Я в конце моей веревки на этом. У меня есть сервер БД, который подключается к нашему веб-серверу локально. Мы наконец-то настраиваем SSL на веб-сервере, что должно было случиться много лет назад, но не знаю, по какой причине (ничего легитимного, это точно. При устранении этой дыры в безопасности другая проблема Появилось: запросы utl_http терпят неудачу с ошибкой ORA-29024, и, несмотря на все мои усилия, я не могу сделать их успешными.
Я создал кошелек с сертификатом в нем, включая всю цепочку с провайдерами. Я использовал как файлы .cer, так и файлы p7b. У меня правильно установлена команда set_wallet, и весь процесс работает с самозаверяющими сертификатами, которые я создал в системе тестового стенда и локально. Я просто не могу заставить их работать с действительным действующим сертификатом.
Моя версия Oracle - 11.2.0.4.180417. Вот мой код:
Создать кошелек:
mkdir c:\oracle_wallet
orapki wallet create -wallet "c:\oracle_wallet" -pwd xxxxxxxx -auto_login
orapki wallet add -wallet "c:\oracle_wallet" -trusted_cert -cert "c:\certificates\cert.p7b" -pwd xxxxxxx
Сделайте HTTP-вызов:
begin
UTL_HTTP.set_wallet('file:c:\oracle_wallet', 'xxxxxxx');
...lines that build up the URL variable
results := utl_http.request(url);
...
end
Опять же, я попробовал файлы .p7b с полным путем сертификации, а также файлы .cer Base 64 с отдельными файлами для каждого уровня в цепочке, и ни один из них не работает. Сертификат действителен в браузере, когда я нажимаю точный URL-адрес, который Oracle пытается получить в браузере, это совершенно нормально. Вот точная ошибка:
Можно ли как-нибудь узнать подробности об ошибке в Oracle? Это довольно расплывчато. Примечание. Я загружаю сертификат из своего браузера, используя точный URL-адрес, который использует Oracle.