Classique

Voir la doc : https://certbot.eff.org

Wildcard (OVH)

Se connecter en SSH sur le serveur

Lancer la commande :

# certbot certonly --manual --preferred-challenges=dns --email <moi@monmail.fr> --server https://acme-v02.api.letsencrypt.org/directory --agree-tos --manual-public-ip-logging-ok -d "<monsite.fr>" -d "*.<monsite.fr>"

Cette commande va générer un code, et attendre…

Se connecter au Registrar et saisir ce code dans un champ TXT correspondant au domaine

Pour vérifier que le DNS est propagé

– Utiliser l’outil https://mxtoolbox.com/dnscheck.aspx 

– Ou taper la commande :

$ host -t txt _acme-challenge.<monsite.fr>

Revenir sur le serveur et taper “Enter”

Compte et liste les connexions externes au serveur :
netstat -an | egrep ':80|:443' | grep ESTABLISHED | awk '{print $5}' | grep -o -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | sort -n | uniq -c | sort -nr

$ brew update
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/homebrew-php
$ brew options php56
$ brew install php56

Dans le fichier /etc/apache2/httpd.conf :
Commenter la ligne
LoadModule php5_module libexec/apache2/libphp5.so

Rajouter la ligne
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so

Relancer Apache :
sudo vi /etc/apache2/httpd.conf

Lister les modules installés :
$ php -m

Installer le paquet :
# apt-get install google-sitemapgen

Se placer dans le répertoire du site :
# cd /var/www/site/

Récupérer le fichier de config :
# cp /usr/share/doc/google-sitemapgen/examples/example_config.xml.gz .

Dézipper :
# gunzip -d example_config.xml.gz

Renommer :
# mv example_config.xml sitemap_config.xml

Paramétrer le fichier de conf :
# vi sitemap_config.xml

1) Définir les paramètres généraux :

<site base_url="http://www.site.com/"
store_into="/var/www/site/sitemap.xml"
verbose="1"
sitemap_type="web">

 
2) Ajouter manuellement des urls qui ne bougeront jamais.

3) Définir une liste d’urls depuis un document externe.

4) Rajouter un répertoire entier à rajouter au sitemap.

5) Parcourir les logs pour récupérer des urls :

<accesslog path="/var/log/apache2/access.log" encoding="UTF-8" />
<accesslog path="/var/log/apache2/access.log.1" encoding="UTF-8" />
<accesslog path="/var/log/apache2/access.log.2.gz" encoding="UTF-8" />

 
6) Filtrer pour ne pas avoir dans le sitemap des urls interdites au public.
Exemples pour WordPress :

<filter action="drop"  type="wildcard" pattern="*admin*" />
<filter action="drop"  type="wildcard" pattern="*theme*" />
<filter action="drop"  type="wildcard" pattern="*wp-includes*" />
<filter action="drop"  type="wildcard" pattern="*wp-login*" />

 
Pour lancer le script manuellement :
# cd /var/www/site && google-sitemapgen --config="sitemap_config.xml"

Faire en sorte que, automatiquement à chaque nouvelle page créée sur le site, soit renseigné le fichier externe qui contient toutes les urls, et soit lancé le script pour mettre à jour le sitemap.xml

Installer Apache :
# apt-get install apache2

Installer Mysql :
# apt-get install mysql-server

Installer PHP :
# apt-get install php5 php5-mysql

Créer une base :
# mysql -uroot -p
mysql> create database BASE;
mysql> grant select,insert,update,delete,create,drop,alter on BASE.* to USER@localhost identified by 'PASS';
mysql> flush privileges;

Télécharger et installer WordPress :
$ cd /var/www
$ curl -O wordpress.org/latest.tar.gz
$ tar -xvzf latest.tar.gz
$ mv wordpress/ monsite/
$ cd

Mettre à jour le fichier wp-config :
$ vi /var/www/monsite/wp-config.php

define('WP_HOME','http://monsite.lan/');
define('WP_SITEURL','http://monsite.lan/');
define('DB_NAME', 'BASE');
define('DB_USER', 'USER');
define('DB_PASSWORD', 'PASS');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_general_ci');
define('WPLANG', 'fr_FR');

 
Configurer Apache :
# vi /etc/apache2/sites-available/monsite.conf

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    ServerName monsite.lan
    DocumentRoot /var/www/monsite
    DirectoryIndex index.php
    
    <Directory /var/www/monsite/>
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/monsite.error.log
    CustomLog ${APACHE_LOG_DIR}/monsite.access.log combined

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 
Activer le virtualhost :
# a2ensite monsite.conf
# a2enmod rewrite.load
# a2enmod headers.load
# /etc/init.d/apache2 restart

Renseigner le DNS local :
# vi /etc/hosts
127.0.0.1 monsite.lan

Se placer dans le répertoire qu’on a choisi
# mkdir -p /etc/apache2/ssl
# cd /etc/apache2/ssl

Pour la suite, $FQDN représente le nom complet du virtualhost.
(Exemple : site.domaine.ext ou www.domaine.fr)

Générer la clef privée et le “certificate signing request” :
# openssl genrsa -des3 -passout pass:x -out $FQDN.pass.key 2048
# openssl rsa -passin pass:x -in $FQDN.pass.key -out $FQDN.key
# rm $FQDN.pass.key
# openssl req -new -key $FQDN.key -out $FQDN.csr

Générer le certificat ssl :
# openssl x509 -req -days 3650 -in $FQDN.csr -signkey $FQDN.key -out $FQDN.crt
# chmod 600 FQDN.*

Voir le certificat :
openssl x509 -noout -text -in $FQDN.crt

Activer ssl :
# a2enmod ssl

Paramétrer le virtualhost :
# vi /etc/apache2/site-available/monsite.conf

<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/$FQDN.crt
SSLCertificateKeyFile /etc/apache2/ssl/$FQDN.key

 
Apache doit écouter le port 443 :
# vi /etc/apache2/ports.conf

<IfModule ssl_module>
    Listen 443
</IfModule>

 
Relancer Apache :
/etc/init.d/apache2 restart

(Merci à ce lien)