У меня есть установка Shiboleth, которая работает на Jetty 9. Через Apache у меня есть обратный прокси-сервер для порта 8080 Jetty, который обслуживает экземпляр Shiboleth.
Когда я скручиваю http://localhost:8080/idp/shibboleth в консоли, ответ экземпляра генерируется правильно.
Однако, когда я делаю то же самое в своем браузере https://idp.example.com/idp/shibboleth Я получаю ошибку 404.
Это какой-то признак того, что обратный прокси работает неправильно?
Это моя конфа апача
SSLUseStapling включен
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors выключен
SSLStaplingCache shmcb:/var/run/ocsp(128000)
<Виртуальный хост *:80>
Имя сервера "idp.spectrum.com.cy"
Редирект постоянный "/" "https://idp.spectrum.com.cy/"
</ виртуальный хост>
<IfModule mod_ssl.c>
<Виртуальный хост _default_:443>
Имя сервера idp.spectrum.com.cy:443
Администратор сервера [email protected]
# Дебиан
CustomLog /var/log/apache2/idp.spectrum.com.cy.log вместе
Журнал ошибок /var/log/apache2/idp.spectrum.com.cy.org-error.log
# Центос
#CustomLog /var/log/httpd/idp.example.org.log вместе
#ErrorLog /var/log/httpd/idp.example.org-error.log
DocumentRoot /var/www/html/idp.spectrum.com.cy
SSLEngine включен
Протокол SSL Все -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL ES !LOW ! !MD5 !EXP !PSK !SRP !DSS !RC4"
SSLHonorCipherOrder on
# Запретить встраивание страницы входа вашего IdP в iframe и
# Включить HTTP Strict Transport Security на 2 года.
<IfModule headers_module>
Заголовок устанавливает X-Frame-Options DENY
Набор заголовков Strict-Transport-Security "max-age=63072000 ; includeSubDomains ; preload"
</ЕслиМодуль>
# Дебиан
SSLCertificateFile /etc/ssl/certs/idp.spectrum.com.cy.crt
SSLCertificateKeyFile /etc/ssl/private/idp.spectrum.com.cy.key
# ACME-CA или GEANT_OV_RSA_CA_4 (для пользователей, использующих GARR TCS/Sectigo RSA Organization Validation Secure Server CA)
#SSLCACertificateFile /etc/ssl/certs/ACME-CA.pem
#SSLCACertificateFile /etc/ssl/certs/GEANT_OV_RSA_CA_4.pem
# Центос
#SSLCertificateFile /etc/pki/tls/certs/idp.example.org.crt
#SSLCertificateKeyFile /etc/pki/tls/private/idp.example.org.key
# ACME-CA или GEANT_OV_RSA_CA_4 (для пользователей, использующих GARR TCS/Sectigo RSA Organization Validation Secure Server CA)
#SSLCACertificateFile /etc/pki/tls/certs/ACME-CA.pem
#SSLCACertificateFile /etc/pki/tls/certs/GEANT_OV_RSA_CA_4.pem
<IfModule mod_proxy.c>
ProxyPreserveHost включен
RequestHeader устанавливает X-Forwarded-Proto "https"
ProxyPass /idp http://localhost:8080/idp/retry=5
ProxyPassReverse /idp http://localhost:8080/idp/retry=5
<Местоположение /идентификатор>
Требовать все предоставленные
</местоположение>
</ЕслиМодуль>
</ виртуальный хост>
</ЕслиМодуль>
<Виртуальный хост 127.0.0.1:80>
ProxyPass /idp http://localhost:8080/idp/retry=5
ProxyPassReverse /idp http://localhost:8080/idp/retry=5
<Местоположение /идентификатор>
Требовать все предоставленные
</местоположение>
</ виртуальный хост>
Я упростил свой файл conf, чтобы удалить https. Приведенная ниже конфигурация работает нормально, но только с http. Я выясню, почему конфигурация https генерирует ошибку 404.
<VirtualHost *:80>
ServerName idp.spectrum.com.cy
<IfModule mod_proxy.c>
ProxyPreserveHost On
ProxyPass /idp/ http://localhost:8080/idp/ retry=5
ProxyPassReverse /idp/ http://localhost:8080/idp/ retry=5
<Location /idp>
Require all granted
</Location>
</IfModule>
# Этот виртуальный хост предназначен только для обработки административных команд
для Shibboleth, выполняется с локального хоста
<Виртуальный хост 127.0.0.1:80>
ProxyPass /idp http://localhost:8080/idp/retry=5
ProxyPassReverse /idp http://localhost:8080/idp/retry=5
<Местоположение /идентификатор>
Требовать все предоставленные
</местоположение>
</ виртуальный хост>