Sommaire | ||
---|---|---|
|
...
CAS 1 : Serveur NGINX
modification Modification du fichier pod/custom/settings_local.py
ajouter les lignes suivante suivantes :
Bloc de code |
---|
SECURE_SSL_REDIRECT = True |
...
SESSION_COOKIE_SECURE = True |
...
CSRF_COOKIE_SECURE = True |
...
puis relancer le service
sudo systemctl restart uwsgi-pod
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.
Bloc de code |
---|
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 :
Bloc de code |
---|
sudo vi /etc/nginx/sites-available/default |
Comme ceci :
Bloc de code |
---|
#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.
Bloc de code |
---|
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
Bloc de code |
---|
<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
Bloc de code |
---|
<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 :
Bloc de code |
---|
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
Bloc de code |
---|
sudo systemctl restart uwsgi-pod |
CAS 3 : Run server
( Adaptation de la doc suivante : https://timonweb.com/django/https-django-development-server-ssl-certificate/ )
Il faut créer des certificats autosignés, attention il faut se placer en dehors de podv3 :
Bloc de code |
---|
(django_pod3) pod@pod:/usr/local/django_projects$ openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem |
Ensuite, il faut installer des extensions:
Bloc de code |
---|
(django_pod3) pod@pod:/usr/local/django_projects$ pip install django-extensions Werkzeug |
Et modifier le fichier settings.py pour ajouter ""django_extensions"," dans la liste des applications installées.
Bloc de code |
---|
(django_pod3) pod@pod:/usr/local/django_projects$ vim podv3/pod/settings.py
INSTALLED_APPS = [
# [...]
"django_extensions",
# Pod Applications
# [...]
] |
Enfin, pour lancer le server, il suffit de se placer dans podv3 et de lancer la commande suivante :
Bloc de code |
---|
(django_pod3) pod@pod:/usr/local/django_projects/podv3$ python3 manage.py runserver_plus pod.univ.fr:8000 --insecure --cert-file ../cert.pem --key-file ../key.pem |