CAS 1 : Serveur NGINX
Modification du fichier pod/custom/settings_local.py
ajouter les lignes suivantes :
SECURE_SSL_REDIRECT = True SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True
Créez une clé privée et le certificat à l’aide de la commande OpenSSL. Il s'agit ici d'un certificat auto-signé. Personnellement, il ne me sert qu'à faire tourner mon serveur web en local pour du développement.
sudo mkdir /etc/nginx/certificate cd /etc/nginx/certificate sudo openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out nginx-certificate.crt -keyout nginx.key
Renseignez les informations.
Modifiez ensuite ce fichier de configuration :
sudo vi /etc/nginx/sites-available/default
Comme ceci :
#Redirige les utilisateurs http vers https server { listen 80 default_server; listen [::]:80 default_server; server_name _; return 301 https://$host$request_uri; } # https server { listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl_certificate /etc/nginx/certificate/nginx-certificate.crt; ssl_certificate_key /etc/nginx/certificate/nginx.key; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
Dans pod/custom/pod_nginx.conf, ajoutez cette ligne pour ouvrir le port 443 (port https) :
listen 443;
Puis relancez les services.
sudo systemctl restart uwsgi-pod nginx
CAS 2 : serveur Apache
Mise en place d'un serveur front de type Apache: configuration des fichiers pod.conf et pod-ssl.conf
- configuration du fichier pod.conf
<VirtualHost *:80> ServerAdmin pod@univ.fr ServerName pod.univ.fr DocumentRoot /var/www/html RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}/ ErrorLog ${APACHE_LOG_DIR}/pod_error.log CustomLog ${APACHE_LOG_DIR}/pod_access.log combined </VirtualHost>
2. configuration du fichier pod-ssl.conf
<VirtualHost *:443> ServerAdmin pod@univ.fr ServerName pod.univ.fr SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off SSLProxyVerify none SSLCertificateFile /etc/apache2/ssl/pod_univ.fr.crt SSLCertificateKeyFile /etc/apache2/ssl/pod_univ.fr.key SSLCertificateChainFile /etc/apache2/ssl/DigiCertCA.crt DocumentRoot /var/www/html Header always set X-Frame-Options "sameorigin" RewriteEngine On ProxyPassReverse / http://ip_priv_pod_apache/ ProxyPass / http://ip_priv_pod_apache/ ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> <Directory /> Options FollowSymLinks AllowOverride None </Directory> CustomLog /var/log/apache2/pod_access.log combined ErrorLog /var/log/apache2/pod_error.log ServerSignature Off </VirtualHost>
→ relancer apache
sur le serveur front-pod-priv
ajouter les lignes suivantes dans pod/custom/settings_local.py
ajouter les lignes suivante :
SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True USE_X_FORWARDED_HOST = True SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
puis relancer le service
sudo systemctl restart uwsgi-pod