CFHTTP через SSL
Я пытаюсь получить файлы с сервера через SSL, используя ColdFusion CFHTTP
тег безуспешно Наша среда - Linux, использующая конфигурацию сервера. Используется хранилище ключей по адресу cf_root/runtime/jre/lib/security/cacerts
, Я получил сертификат X.509 (в формате DER) с целевого сервера и экспортировал его в файл. На нашем сервере, в папке, где находятся cacerts, я импортировал этот сертификат в наше хранилище ключей cacerts:
keytool -import -alias certAlias -file pathToX509Cert -keystore cacerts -storepass blahPass
и перезапустил ColdFusion. Тем не менее, мы все еще получаем ошибку "I/O Exception: peer not authenticated". Я даже попытался импортировать тот же сертификат в trustStore на cf_root/runtime/lib/trustStore
и перезапуск ColdFusion. Тот же результат. Что-то еще мне не хватает? Я даже попытался обойти Раймонда Кэмдена без удачи.
1 ответ
В зависимости от версии CF, которую вы используете, единственным решением может быть решение, опубликованное Ray. В некоторых случаях импорт сертификата может работать, но если вы получаете доступ к SSL-сертификату с подстановочными знаками, я никогда не смог заставить его работать на CF8 или ниже.
Для справки, код, который исправит это:
<cfset objSecurity = createObject("java", "java.security.Security") />
<cfset storeProvider = objSecurity.getProvider("JsafeJCE") />
<cfset objSecurity.removeProvider("JsafeJCE") />
Если это не работает для вас, можете ли вы опубликовать URL-адрес, к которому вы пытаетесь обратиться, чтобы мы могли проверить сертификат?
FWIW, вы обычно можете поймать эту ошибку в cfcatch, используя тип "COM.Allaire.ColdFusion.HTTPFailure".