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

Workaround pour le "bug" des subs SHA2 :

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