Tôi có bản cài đặt Shiboleth chạy trên Cầu tàu 9. Thông qua Apache, tôi có một proxy ngược tới cổng 8080 của Cầu tàu phục vụ phiên bản Shiboleth.
Khi tôi cuộn tròn http://localhost:8080/idp/shibboleth trong bảng điều khiển, phiên bản phản hồi được tạo chính xác.
Tuy nhiên khi tôi làm điều tương tự trên trình duyệt của mình https://idp.example.com/idp/shibboleth Tôi gặp lỗi 404.
Đây là một số dấu hiệu cho thấy proxy ngược không hoạt động chính xác?
Đây là conf apache của tôi
SSLSử dụng Dập ghim bật
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderLỗi tắt
SSLStaplingCache shmcb:/var/run/ocsp(128000)
<Máy chủ ảo *:80>
Tên máy chủ "idp.spectrum.com.cy"
Chuyển hướng vĩnh viễn "/" "https://idp.spectrum.com.cy/"
</Máy chủ ảo>
<IfModule mod_ssl.c>
<Máy chủ ảo _default_:443>
Tên máy chủ idp.spectrum.com.cy:443
ServerAdmin [email protected]
# Debian
Nhật ký tùy chỉnh /var/log/Apache2/idp.spectrum.com.cy.log kết hợp
ErrorLog /var/log/Apache2/idp.spectrum.com.cy.org-error.log
# Centos
#CustomLog /var/log/httpd/idp.example.org.log kết hợp
#ErrorLog /var/log/httpd/idp.example.org-error.log
DocumentRoot /var/www/html/idp.spectrum.com.cy
Công cụ SSL Bật
Giao thức SSL Tất cả -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 !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
SSLHonorCipherĐặt hàng
# Không cho phép nhúng trang đăng nhập IdP của bạn trong iframe và
# Bật HTTP Strict Transport Security với thời hạn 2 năm
<IfModule headers_module>
Bộ tiêu đề X-Frame-Options TỪ CHỐI
Bộ tiêu đề Strict-Transport-Security "max-age=63072000 ; includeSubDomains ; preload"
</IfModule>
# Debian
SSLCertificateFile /etc/ssl/certs/idp.spectrum.com.cy.crt
SSLCertificateKeyFile /etc/ssl/private/idp.spectrum.com.cy.key
# ACME-CA hoặc GEANT_OV_RSA_CA_4 (Dành cho người dùng sử dụng GARR TCS/Sectigo RSA Máy chủ bảo mật xác thực tổ chức CA)
#SSLCACertificateFile /etc/ssl/certs/ACME-CA.pem
#SSLCACertificateFile /etc/ssl/certs/GEANT_OV_RSA_CA_4.pem
# Centos
#SSLCertificateFile /etc/pki/tls/certs/idp.example.org.crt
#SSLCertificateKeyFile /etc/pki/tls/private/idp.example.org.key
# ACME-CA hoặc GEANT_OV_RSA_CA_4 (Dành cho người dùng sử dụng GARR TCS/Sectigo RSA Máy chủ bảo mật xác thực tổ chức 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 Bật
RequestHeader đặt X-Forwarded-Proto "https"
ProxyPass /idp http://localhost:8080/idp/ thử lại=5
ProxyPassReverse /idp http://localhost:8080/idp/ thử lại=5
<Vị trí /idp>
Yêu cầu tất cả cấp
</Vị trí>
</IfModule>
</Máy chủ ảo>
</IfModule>
<Máy chủ ảo 127.0.0.1:80>
ProxyPass /idp http://localhost:8080/idp/ thử lại=5
ProxyPassReverse /idp http://localhost:8080/idp/ thử lại=5
<Vị trí /idp>
Yêu cầu tất cả cấp
</Vị trí>
</Máy chủ ảo>
Tôi đã đơn giản hóa tệp conf của mình để xóa https. Cấu hình bên dưới hoạt động tốt nhưng chỉ với http. Tôi sẽ điều tra lý do tại sao cấu hình https tạo ra lỗi 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>
# Máy chủ ảo này chỉ ở đây để xử lý các lệnh quản trị
cho Shibboleth, được thực thi từ localhost
<Máy chủ ảo 127.0.0.1:80>
ProxyPass /idp http://localhost:8080/idp/ thử lại=5
ProxyPassReverse /idp http://localhost:8080/idp/ thử lại=5
<Vị trí /idp>
Yêu cầu tất cả cấp
</Vị trí>
</Máy chủ ảo>