Au final les certificats non-tor seront (malheuresement) signé par Let’s Encrypt un peu avant le 2017-05-26, les certificats tor seront auto-signé
Soutenons La Quadrature Du Net

Antisèche pour nginx

C’est plutôt beaucoup de configs ensemble avec des commentaires. De toute façon le résultat est le même.

# /etc/nginx/sites-enabled/hacktivis.me
server {
	# traffic en clair dans un autre vhost, CACert étant pas très reconnut(donc autre vhost pour traffic en clair sans HSTS), si vous avez un CA reconnut enlevez les commentaires.
	#listen 80;
	#listen [::]:80;
	listen 443 ssl;
	listen [::]:443 ssl;

	server_name hacktivis.me;
	root /srv/web/hacktivis.me;

	# Modifier l’index (page utilisée pour un lien qui finit par / )
	index accueil.shtml index.html index.htm index.shtml;

	location / {
		try_files $uri $uri/ $uri.html =404; # Essaye ces liens pour une requête, envoie un 404 si non-trouvé.
		autoindex on; # Liste les dossiers qui n’ont pas d’index, considéré comme une failles par certain·e·s
		# Avec Server-Side-Include
		#try_files $uri $uri/ $uri.shtml $uri.html =404;
		#ssi on;
		include assemblee.conf;
	}
	error_page 403 /assemblee.html; # Pas la meilleure solution, une redirection serait mieux, mais je sais pas comment faire ça propre

	ssl_certificate     ssl/hacktivis.me.pem; # Ne pas oublier de rajouter la chaine de certificat/le CA après le votre
	ssl_certificate_key ssl/hacktivis.me.key; # pour RSA mettre du 3072 bits minimum

	# Merci aeris ;3
	ssl_ciphers 'EECDH+CHACHA20:EECDH+AESGCM'; # or EECDH+CHACHA20:EECDH+AES:DHE+CHACHA20:DHE+AES:+SHA
	ssl_prefer_server_ciphers on; # Parceque les clients on une config TLS toute pouritte
	ssl_protocols TLSv1.2; # POODLE sur ≤TLS1.1
	ssl_dhparam ssl/dhparam.pem; # “openssl dhparam -out dhparam.pem 2048” (4096 est très long)
	ssl_ecdh_curve secp384r1:secp521r1; # if("failed: unknown curve"): ssl_dhparam secp384r1;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_session_cache   shared:SSL:10m;
	ssl_session_timeout 10m;
	add_header Strict-Transport-Security 'max-age=15768000;includeSubDomains'; # Garder l’https pendant 6 mois et inclure les sous-domaines
	add_header Public-Key-Pins 'pin-sha256="vOs/I6cJeaMzFkoEpscUvF/ahXvr7Cn4gDT7xTfhz+I="; max-age=5184000; includeSubDomains; report-uri="https://example.tld/report"'; # Garder en mémoire la signature de la clé publique pendant 60 jours et inclure les sous-domaines et rapport d’erreurs à https://example.tld/report

	# https://wiki.mozilla.org/Security/Guidelines/Web_Security#Content_Security_Policy
	add_header X-Frame-Options           "DENY"; # Deny framing
	add_header X-Content-Type-Options    "nosniff";
	add_header X-XSS-Protection          "1; mode=block";
	add_header Content-Security-Policy   "default-src 'none'; script-src 'none'; style-src 'self'; img-src 'self' 'unsafe-inline' https://framapic.org:443;";
}
# /etc/nginx/assemblee.conf
deny 62.160.71.0/24; # NETNAME: FR-PRESIDENCE-DE-LA-REPUBLIQUE
deny 84.233.174.48/28; # NETNAME: PRESIDENCE-NETS
deny 80.118.139.160/27; # NETNAME: ASSEMBLEE-NATIONALE
deny 193.107.240.0/24; # NETNAME: FARM08 (= TMG/HADOPI)