Certificats SSL
Généralités
Les certificats SSL au ResEl permettent de se connecter de façon sécurisé aux sites web du ResEl.
Liste des machines disposants du certificat
- Cyric (cacert.pem doit rester accessible pour ldap !)
- Golf
- Tracteur
- Padova
- W3
- Hera
/etc/apache2/ssl
- Knuckles
/etc/nginx/ssl
- Tails
/etc/lighttpd/ssl
- Jarod
/etc/ejabberd/ssl
Fournisseurs
StartSSL, au 2015-10-09
- Lien vers le CA : https://www.startssl.com/certs/ca-sha2.pem
- Lien vers le Sub : https://class2.test.itk98.net/class2.ca.pem
https://www.startssl.com/certs/class2/sha2/pem/sub.class2.server.sha2.ca.pem
Workaround pour le "bug" des subs SHA2 :
- https://serverfault.com/questions/684736/why-does-chrome-on-1-computer-say-my-certificate-is-invalid-insecure
- https://code.google.com/p/chromium/issues/detail?id=473105
- https://forum.startcom.org/viewtopic.php?p=21826#p21826
- https://forum.startcom.org/viewtopic.php?p=21832#p21832
- https://class2.test.itk98.net/ => Le sub à utiliser est le suivant : https://class2.test.itk98.net/class2.ca.pem
Structure du dossier de certificat
20:07 root@host ~ # cd /etc/apache2/ssl
20:08 root@host /etc/apache2/ssl # chmod o-rx -R .
20:09 root@host /etc/apache2/ssl # ll
total 2,0K
drwxr-x--- 2 root root 1,0K oct. 9 14:34 2015/
drwxr-x--- 4 root root 1,0K oct. 9 14:21 bak_20151009/
lrwxrwxrwx 1 root root 20 oct. 9 14:21 ca.pem -> 2015/startssl-ca.pem
lrwxrwxrwx 1 root root 28 oct. 9 14:28 ca.sub.pem -> 2015/startssl-sub.class2.pem
lrwxrwxrwx 1 root root 31 oct. 9 14:32 resel.key -> 2015/fr.resel.wildcard.2015.priv.rsa
lrwxrwxrwx 1 root root 26 oct. 9 14:31 resel.pem -> 2015/fr.resel.wildcard.2015.pem
20:10 root@src-host /etc/apache2/ssl # scp -rp $(date +'%Y')/ user@dst-host.adm:/tmp/
rm -rf /tmp/ssl/old
cd <dossier destination>
mv /tmp/ssl/* .
sudo rm *.cert
sudo rm *.key
chown root:root $(date +'%Y')
ln -s $(date +'%Y')/startssl-ca.pem ca.pem
ln -s $(date +'%Y')/startssl-sub.class2.pem ca.sub.pem
ln -s $(date +'%Y')/fr.resel.wildcard.$(date +'%Y').rsa.priv resel.key
ln -s $(date +'%Y')/fr.resel.wildcard.$(date +'%Y').pem resel.pem
chmod o-rx -R .
pour nginx : cat chain.cert >> resel.cert
pour lighttpd : cat resel.key >> resel.cert
Configuration
Apache
# La ligne suivante correspond au CA des certificats *client*, le concerne pas les certificats serveurs.
# https://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslcacertificatepath
# SSLCACertificateFile /etc/apache2/ssl/ca.pem
SSLCertificateChainFile /etc/apache2/ssl/ca.sub.pem
SSLCertificateFile /etc/apache2/ssl/resel.pem
SSLCertificateKeyFile /etc/apache2/ssl/resel.key
Nginx
server {
# Exemple :
#listen 443 ssl;
[..]
ssl_certificate /etc/nginx/ssl/resel.pem;
ssl_certificate_key /etc/nginx/ssl/resel.key;
}
Lighttpd
15:48 alevavas@tails /etc/lighttpd % cat conf-enabled/30-ssl-resel.conf
# /usr/share/doc/lighttpd/ssl.txt
$SERVER["socket"] == ":443" {
server.use-ipv6 = "enable"
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/resel.pem"
ssl.ca-file = "/etc/lighttpd/ssl/ca.sub.pem"
[..]
}
Notes
DHparam
Pour plus de sécurité, il peut être intéressant de génerer une nouvelle suite de dhparam à l'installation afin de ne pas utiliser celle par défaut de la distribution.
openssl dhparam -dsaparam -out dhparams-4096.pem 4096
Ressources utiles
(TODO)
TODO (rédacteur)
- Peut être rédiger un peu plus et contextualiser
- Ajouter des ressources