Observium en full HTTPS-SSL avec Nginx – Debian

1/52/53/54/55/5 (2 votes, moyenne: 3,00 sur 5)
Loading...
O

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

 

Aujourd’hui nous allons voir comment forcer l’utilisation du protocole HTTPS avec un reverse Proxy Nginx sous Debian 7. Nous utiliserons un certificat Positive SSL de comodo qui coûte dans les 6€ par an.

 

Les versions utilisées :

  • Apache 2.2
  • Php 5.5
  • MariaDB 10.0.13
  • Observium CE 0.14.4.5229
  • Nginx 1.6.1 ~dotdeb
  • Debian 7.6
  • Certificat SSL : Comodo Positive SSL from Namecheap (~6€)

 

Les étapes :

  1. Modifier la configuration d’Apache 2
  2. Installer Nginx
  3. Création du CSR et commande du certificat
  4. Installer le certificat SSL sur le serveur
  5. Créer la configuration pour Nginx

 

Modification de la configuration d’Apache 2 :

On commence par stopper le serveur Apache 2 avec la commande suivante :

service apache2 stop

 

Ensuite on édite le fichier des ports Apache :

nano /etc/apache2/ports.conf

 

On remplace les ports par 80 par 82 :

NameVirtualHost *:82
Listen 82

 

Maintenant rendez vous dans les virtualhosts d’apache :

cd /etc/apache2/sites-enabled

 

Assurez vous qu’aucun de vos virtualhost n’ai le support ssl, si vous avez suivi la procédure d’observium, modifiez le fichier par défaut d’apache :

nano /etc/apache2/sites-enabled/000-default

 

Remplacez le port 80 par le port 82 :

VirtualHost *:82

 

Maintenant vous pouvez relancer Apache 2 :

service apache2 start

 

Installation de Nginx sur Debian 7 :

Dans un premier temps, on va éditer les sources de notre machine :

nano /etc/apt/sources.list

 

Rajoutez au début du fichier les repos dotdeb :

deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all

 

Ensuite, téléchargez et installez la clé dotdeb :

cd /tmp
wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg

 

Mettez à jour votre système :

apt-get update && apt-get upgrade

 

Installez Nginx et Memcached :

apt-get install nginx memcached

 

Création du CSR et commande du certificat :

Dans un premier temps, commandez un certificat Positive SSL de Comodo sur Namecheap.

Ensuite, placez vous dans le dossier de Nginx :

cd /etc/nginx

 

Maintenant créez un dossier SSL et placez vous dedans :

mkdir ssl && cd ssl

 

On vas partir du principe que votre domaine s’appelle exemple.com.

Créez une clé avec la commande suivante, on va vous demander un mot de passe :

openssl genrsa -des3 -out exemple.com.key 2048

Maintenant lancez la commande suivante et rentrez le mot de passe que vous avez mis à l’étape précédente :

openssl rsa -in exemple.com.key -out exemple.com.key.nopass

 

Maintenant, créez le CSR et attention, remplissez bien les champs !

Le plus important c’est le CN (Common Name) qui doit correspondre à votre nom de domaine et ne mettez pas de Challenge Password !

openssl req -new -key exemple.com.key.nopass -out exemple.com.csr

 

Maintenant rendez-vous sur Namecheap et activez votre certificat. Dans le server type choissisez Apache/OpenSSL.

Lorsqu’on vous demandera votre CSR copiez bien tout le contenu de votre csr, les section begin et end comprises, exemple :

-----BEGIN CERTIFICATE REQUEST-----
 MIICoDCCAYgCAQAwWzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
 ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLZXhl
 bXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDUhoWwIYgl
 M8eyxXQlhZvUJMMCg05YWsQIPXvyeO3RaJ2TvP/SQKZ0iOnMHmGHmz0sZfD5DvnJ
 sR7GdZp4eJYLpyupUu/0bFx5LqRn8des5OklKSzM57Z/UAYRlR+4VB6MrWHUN1D3
 VVrHc4DPAIRdAycf+t9NGclCSo+F2kr4I0rmEPe7SuWYGvb+kLBHVwdZwqQL6Cf0
 GCyiq/xglfH3aIy9V4cV1mSEaLMhyWQ9Qnq0QrKW7Yp9hZID+9JHHP5qqoCr4Tu+
 t4XWCJALFaOZClKuP1oZhufq41ASM9rzUNHw4M0keSfFzYWO1ks9TAQD6uvXcFj5
 AbbmaZQmfU6ZAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAfMiXJ9hrF6aJu4p3
 ET+hFoeqQcYcbWrzBo0uNshrdb4RmhHS3e4IPU0l6M6/mhW5cuJrk02eW7+fENx3
 pD+/dWjjKI0MSxlSij5fLSeFxreCKYjPd7GaCzt/LaSJBLy7Abx73q35s38hZoMz
 o5L/SIjrjkIUOmHzqvbB6WWEM9uuUBXQ2jpSdyyPB36zOP8yj7+VkMzMsBR3cETJ
 IHbGj5SaF9i2rTgV0SxOZXvJ8Yl4tMarXmuqFxASMOQ3lUV4Xm07Qb0F1Kb4lB/c
 pFIIAe/7LAWfk1ycmwPAtQCd8Kf2zFhb5tp2UCsd1uMOMkI/NrK46uexdtcGGjMu
 f2gawg==
 -----END CERTIFICATE REQUEST-----

 

Ensuite vous allez recevoir un mail de comodo semblable à celui-ci contenant 4 fichier dans une archive zip, envoyez les dans votre dossier ssl :

observium-https-ssl

 

Une fois que tous les fichiers sont dans votre dossier SSL, lancez la commande suivante :

cat exemple_com.crt AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt  > exemple.com.crt

 

 

Création de la configuration du Reverse Proxy :

Maintenant supprimez le site par défaut de Nginx :

cd /etc/nginx/sites-enabled
rm*

 

Et créez un fichier pour votre serveur IIS :

nano observium

 

Et remplissez le avec ceci, modifiez les chemins des certificats pour correspondre à votre nom de domaine :

server {
 listen 443 ssl default;
 listen [::]:443 ssl default ipv6only=on;
 server_name exemple.com;
 server_name_in_redirect on;
 resolver 127.0.0.1;
 access_log off;

#SSL
 ssl_certificate     /etc/nginx/ssl/exemple.com.crt;
 ssl_certificate_key /etc/nginx/ssl/exemple.com.key.nopass;
 ssl_session_cache shared:SSL:10m;
 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers 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;

location ~* \.(jpg|jpeg|gif|png|ico|css|css|bmp|js)$ {
 root /opt/observium/html;
 access_log off;
 expires 360d;
 set $memcached_key "$uri?$args";
 memcached_pass 127.0.0.1:11211;
 error_page 404 502 504 = @fallback;
 proxy_pass http://127.0.0.1:82;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 }
location / {
 root /opt/observium/html;
 index index.html index.htm index.php;
 access_log off;
 set $memcached_key "$uri?$args";
 memcached_pass 127.0.0.1:11211;
 error_page 404 502 504 = @fallback;
 proxy_pass http://127.0.0.1:82;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server {
    listen              80 default_server;
 listen [::]:80 default_server ipv6only=on;
    server_name         exemple.com;
    return 301 https://$host$request_uri;


}

 

 

Pour finir, redémarrez Nginx :

service nginx restart

 

 

Si vous avez tout bien suivi vous avez maintenant votre observium en full HTTPS :

observium-https-ssl-2

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Inline Feedbacks
View all comments