Я пытаюсь использовать службы REST Coldfusion 11, но я могу работать только с HTTP, а не с HTTPS. Когда я изменить протокол к HTTPS, он возвращает 404.Служба REST Service Coldfusion работает с HTTP, но не с HTTPS (404)
Шаги я взял:
1) Я сделал папку в корневом каталоге веб называется «апи-тест»
2) Внутри что папка, я создал файл с именем "animals.cfc", содержащий:
<cfcomponent rest="true" restpath="/animals">
<cffunction name="getAnimals" access="remote" httpmethod="GET" produces="application/json" returntype="struct">
<cfset value = { "cats": "dogs", "birds": "snakes" }>
<cfreturn value>
</cffunction>
</cfcomponent>
3) ColdFusion Administrator под данных & Услуги/REST Services , Я добавил «/ web/webapps/api-test» в качестве корневого пути и «api-test» в качестве карт.
4) В моем веб-браузере, при входе в один из моих CF веб-приложений на одном сервере (с использованием HTTP), я проверить API с JQuery и Firefox, Firebug/Web Developer плагин:
$.get("http://cftestapp1.mydomain.com/rest/api-test/animals");
данные возвращаются без проблем
5) в моем веб-браузере, когда я изменить протокол веб-приложения CF к HTTPS, и повторите ту же команду, но с HTTPS, я получаю 404.
$.get("https://cftestapp1.mydomain.com/rest/api-test/animals");
Моя среда состоит из двух веб-серверов (cftestapp1 и cftestapp2) за балансиром нагрузки (cftestapps). На веб-серверах работает Coldfusion 11 на Redhat Linux с Apache/Tomcat. Во время моего тестирования я сначала пробовал все с помощью балансировки нагрузки, и когда это не сработало, я сосредоточился исключительно на «cftestapp1» (как в примере выше). Я прочесал все настройки администратора Coldfusion и файл Apache httpd.conf и вышел пустым.
Я не могу найти много документации в Интернете или любого, кто, похоже, испытывает эту же проблему. Если у кого-то есть понимание, пожалуйста, помогите !! Благодаря!
Edit:
Каждый раз, когда я делаю запрос HTTPS, /и т.д./HTTPD/журналы/ssl_error_log (указанные в httpd.conf) показывает следующие ошибки в:
[Вт ноя 24 16:34:23 2015] [ошибка] [клиент my_ip_here] Файл не существует:/web/webapps/rest
[Вт ноя 24 16:34:23 2015] [ошибка] [клиент my_ip_here] Файл не существует:/web/webapps/opt
/web/webapps/rest - это ресурс, который я запрашиваю; однако нет физического файла «rest»; мои записи в службах Restup Restor администратора Coldfusion должны обрабатывать эти переадресации.
/веб/WebApps/выбрать, как представляется, попытка Апач на обслуживание 404 страницы, которая не находится в веб-корень, но довольно глубоко внутри /выбрать каталог.
Я также нашел эту ошибку, которая может быть не связана, поскольку у нас никогда не возникало проблемы с нашими HTTPS-запросами до добавления CF Rest Services.
[Вт 24 ноября 16:33:12 2015] [предупредит] сертификат сервера RSA является CA сертификат (BasicConstraints: CA == TRUE!?)
Ниже приведен отрывок из нашего Apache файл конфигурации (httpd.conf). Есть еще много строк, но они кажутся наиболее актуальными.
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/web/webapps">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Include "/etc/httpd/conf/mod_jk.conf"
NameVirtualHost 127.0.0.1:443
<VirtualHost 127.0.0.1:443>
ServerName localhost
DocumentRoot /web/webapps/
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLProtocol +SSLv3 +TLSv1
SSLCipherSuite RSA:!EXP:!NULL:+HIGH:-MEDIUM:-LOW
ErrorLog logs/cfadmin.ssl.error.log
CustomLog logs/cfadmin.ssl.access.log common
</VirtualHost>
ErrorDocument 404 /opt/cf11/cfusion/wwwroot/CFIDE/administrator/templates/404.cfm
Кажется, что трафик HTTPS неправильно маршрутизирован для 404 и службы REST. Но я могу получить доступ ко всем другим папкам в нашем корневом веб-браузере /webapps при использовании HTTPS без каких-либо проблем.
Работает ли он, если вы просто просматриваете URL-адрес 'https: // cftestapp1.mydomain.com/rest/api-test/animals' в своем браузере? Я понимаю, что это может дать ошибку или некоторые из них, но разрешает ли она? Вы импортировали сертификат в файл хранилища java (cacerts) на своих серверах? –
Добавление сертификата SSL в наше хранилище ключей не исправило его. Но попасть в URL-адреса непосредственно в веб-браузере оказалось проще: с помощью HTTP он отображает JSON. С HTTPS я получаю страницу 404 Apache. Но если я разорву ссылку после _/rest/_, используя HTTP 'http: // cftestapp1.mydomain.com/rest/api-test-break-me/animals', я получаю пустую страницу. И если я разорву ссылку до _/rest/_, используя HTTP 'https: // cftestapp1.mydomain.com/break-me/rest/api-test/animals', я получаю ошибку 404 Coldfusion. Это может быть проблемой с нашей конфигурацией Apache. Я обновил свой вопрос, чтобы включить более подробную информацию об этом. Благодаря! –
Глупый вопрос № 35: что у вас есть в поле ** host ** в конфигурации Rest Services в CF Admin? Справочный текст подсказывает, что вам может понадобиться порт # там, у вас есть две записи (по одному для HTTP и HTTPS?) – Juffy