Пожалуйста, не могли бы вы помочь? Я создал на Java Rest API и экспортировал файл WAR на свой облачный сервер Tomcat 8. Я могу получить доступ и использовать его в своем приложении Codenameone в течение нескольких месяцев, используя http://www.mydomain.co.uk:8080/MyProject/ ...
Но теперь я применил TLS \ SSL к своему серверу (приобрел сертификат Comodo) и теперь, используя мое приложение или почтальон, получаю тайм-аут соединения, когда я использую аналогичный URL-вызов https://www.mydomain.co.uk/MyProject/ ... Идентичный URL-адрес, вставленный в моем браузере, также дает" Соединение заняло слишком много времени, чтобы ответить '. Я не вносил никаких изменений в проект Rest API или заголовки HTTP-запросов, которые я передаю ему между двумя вызовами. Почему его нельзя прочитать сейчас?
Отключение брандмауэра не имеет значения. Использование портов 443 не имеет значения, а использование 8443 дает сообщение «Не удалось получить никакого ответа» в почтальоне.
У меня правильно установлен сторонний сертификат. Я знаю это, потому что в моем браузере, если я запускаю просто "https://www.mydomain.co.uk/MyProject "(без порта) загружает файл WAR. Я также могу просмотреть тестовый файл GIF "https://www.mydomain.co.uk/test.gif ", который правильно находится в моем Tomcats / usr / share, и браузер показывает" Безопасный ", и я вижу, что используется правильный сертификат. Поэтому я не думаю, что это проблема портов Tomcat / брандмауэра или проблема с сертификатом. Поскольку мой браузер может загрузить файл WAR, используя ту же первую половину URL-адреса, это должно означать, что расположение файла войны в порядке.
Кажется, это связано с фактическим вызовом Rest API, который, как я уже сказал, отлично работает, если я делаю "http://www.mydomain.co.uk:8080/MyProject/ ..."
Кажется, почти так же, как Postman или приложение вызывает API. К вашему сведению, мой единственный соответствующий заголовок запроса, я передаю ему Content-Type = 'application / json'. Большое спасибо
ОБНОВЛЕНИЕ 20/05/18. Текущая позиция: когда я вызываю URL-адрес моего rest api "https://www.mydomain.co.uk/MyProject/some_path_params "(который отлично работает с http и 8080), я получаю" 404 Not Found "во всех местах вызова (например, Postman ).
Глядя на apache2 error.log, он говорит: «AH00128: Файл не существует: / var / lib / tomcat8 / webapps / MyProject / some_path_params». Это правильно в том смысле, что файлы не существуют, но это потому, что конечной точкой является MyProject.
Кто-нибудь знает, почему он пытается найти файл, представленный в URL-адресе, вместо вызова остального API и перехода к классу java, который начинается с '@Path ("/ some_path_params")'?
Почему Postman просто не запускает Rest API в режиме https?
Если я введу https://www.mydomain.co.uk/MyProject, отобразится файловая структура, поэтому у меня есть доступ к этому каталогу.
Кстати, когда я перезапускаю apache2, журналы подтверждают, что сертификат TLS загружен правильно.
Если это актуально, я включил это в web.xml проекта Java:
<security-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
В моем apache.conf есть следующие разделы:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/mydomain_co_uk.crt
SSLCertificateKeyFile /etc/ssl/private/www.mydomain.co.uk.key
SSLCertificateChainFile /etc/ssl/certs/mydomain_co_uk.ca-bundle
ServerName www.mydomain.co.uk
Alias /MyProject "/var/lib/tomcat8/webapps/MyProject"
<Location />
Require all granted
</Location>