Benjamin Sonntag
20 septembre 2013 @ La Cantine / Paris
- Site : benjamin.sonntag.fr,
- associé gérant et directeur technique d’Octopuce.
Conférence
Téléchargements
Les slides
Les slides peuvent être téléchargées ici : SSL-TLS_Sonntag.pdf.
Le document « Analysis of the HTTPS Certificate Ecosystem » peut être téléchargé ici : Analysis of the certificate ecosystem (pdf).
Les vidéos
Les vidéos de la conférence sont disponibles en basse et en haute définition, en .mp4 et en .webm :
Basse définition
Haute définition
Exemples de configurations
Apache
ServerAdmin webmaster@octopuce.fr
DocumentRoot /var/www
SSLCertificateFile /etc/ssl/private/octopuce.fr.crt
SSLCertificateChainFile /etc/ssl/private/octopuce.fr.chain
SSLCertificateKeyFile /etc/ssl/private/octopuce.fr.key
SSLEngine on
SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM
Header set Strict-Transport-Security "max-age=2678400"
Nginx
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/private/octopuce.fr.crt+chain;
ssl_certificate_key /etc/ssl/private/octopuce.fr.key;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM;
ssl_dhparam /etc/ssl/private/dh2048.pem;
add_header Strict-Transport-Security max-age=2678400;
}
Et
openssl dhparam -out /etc/ssl/private/dh2048.pem -outform PEM -2 2048
Cf. nginx.org pour plus de détails
lighttpd
$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/ssl/private/octopuce.fr.key+crt"
ssl.ca-file = "/etc/ssl/private/octopuce.fr.chain"
ssl.cipher-list = "ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM"
ssl.honor-cipher-order = "enable"
setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=2678400")
}
Postfix
# TLS parameters
smtpd_tls_cert_file = /etc/ssl/private/octopuce.fr.crt+chain
smtpd_tls_dcert_file = $smtpd_tls_cert_file
smtpd_tls_key_file = /etc/ssl/private/octopuce.fr.key
smtpd_tls_dkey_file = $smtpd_tls_key_file
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5
smtpd_tls_dh1024_param_file = /etc/ssl/private/dh2048.pem
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_protocols = !SSLv2,!SSLv3
smtpd_tls_received_header = yes
smtp_tls_cert_file = $smtpd_tls_cert_file
smtp_tls_dcert_file = $smtpd_tls_dcert_file
smtp_tls_key_file = $smtpd_tls_key_file
smtp_tls_dkey_file = $smtpd_tls_dkey_file
smtp_tls_CAfile = $smtpd_tls_CAfile
smtp_tls_mandatory_ciphers = $smtpd_tls_mandatory_ciphers
smtp_tls_mandatory_exclude_ciphers = $smtpd_tls_mandatory_exclude_ciphers
smtp_use_tls = yes
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_protocols = !SSLv2,!SSLv3
smtp_tls_secure_cert_match = nexthop, dot-nexthop
Voir postfix.org pour plus de détails.
Proftpd
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1
TLSCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM
TLSRSACertificateFile /etc/ssl/private/octopuce.fr.crt+chain
TLSRSACertificateKeyFile /etc/ssl/private/octopuce.fr.key
TLSRenegotiate required off
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off
TLSRequired on # facultatif
Prosody
ssl = {
key = "/etc/ssl/private/octopuce.fr.key";
certificate = "/etc/ssl/private/octopuce.fr.crt+chain";
}
c2s_require_encryption = true
s2s_require_encryption = true
- IMPORTANT : copier le bloc SSL = { } dans tout VirtualHost.
Vous pouvez voir les sites suivants plus aller plus loin :
- Jeveuxhttps.fr pour mettre en place SSL/TLS sur différentes plateformes,
- comment configurer un serveur jabber avec Prosody sous Debian.