copr-fe: enforce https everywhere except for repo files
- Drop WSGIPassAuthorization, no authorization on http:// - Drop 'WSGIProcessGroup repo' for port 80. Repo consumers should go through https:// too (dnf-plugins-core's default) anyways. So any repo-file traffic over plain http:// would be more visible in the port80 process group - Add RewriteCond+RewriteRule config for the automatic redirect Relates: https://pagure.io/copr/copr/issue/2100
This commit is contained in:
parent
88fbb2607e
commit
928cf866f4
1 changed files with 9 additions and 8 deletions
|
@ -24,25 +24,26 @@ WSGIApplicationGroup %{GLOBAL}
|
||||||
ServerName {{ copr_frontend_public_hostname }}
|
ServerName {{ copr_frontend_public_hostname }}
|
||||||
ServerAlias copr-fe{% if devel %}-dev{% endif %}.cloud.fedoraproject.org
|
ServerAlias copr-fe{% if devel %}-dev{% endif %}.cloud.fedoraproject.org
|
||||||
|
|
||||||
# We don't strictly enforce https (only HSTS) for python-processed content.
|
# Keep port 80 open for the .repo and certbot URLs
|
||||||
# This is still useful at least for *.repo URLs. But, that's why we still
|
|
||||||
# configure port 80 here.
|
|
||||||
WSGIPassAuthorization On
|
|
||||||
<Location />
|
<Location />
|
||||||
WSGIProcessGroup port80
|
WSGIProcessGroup port80
|
||||||
</Location>
|
</Location>
|
||||||
<LocationMatch "/repo/">
|
|
||||||
WSGIProcessGroup repo
|
|
||||||
</LocationMatch>
|
|
||||||
<Directory /usr/share/copr>
|
<Directory /usr/share/copr>
|
||||||
Require all granted
|
Require all granted
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|
||||||
|
RewriteEngine on
|
||||||
|
|
||||||
{% if letsencrypt is defined %}
|
{% if letsencrypt is defined %}
|
||||||
# For ansible.git roles/copr/certbot role. Needs to run on port 80.
|
# For ansible.git roles/copr/certbot role. Needs to run on port 80.
|
||||||
RewriteEngine on
|
|
||||||
RewriteRule ^/\.well-known/(.*) /var/www/html/.well-known/$1 [L]
|
RewriteRule ^/\.well-known/(.*) /var/www/html/.well-known/$1 [L]
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
# Redirect everything everything but repo files to https://
|
||||||
|
RewriteCond %{HTTPS} !on
|
||||||
|
RewriteCond %{REQUEST_URI} !/repo/
|
||||||
|
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
|
|
||||||
<VirtualHost *:443>
|
<VirtualHost *:443>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue