397 liens privés
After comparing some notes around the Internet I've came up with this "catch-all" for in Apache. So not just one vhost, anything will catch it. Keeping the configs clean and simple.
Put the following in the conf-enabled directory (Debian based systems):
Alias /.well-known/acme-challenge/ "/var/www/html/.well-known/acme-challenge/"
<Directory "/var/www/html/">
Options None
AllowOverride None
ForceType text/plain
RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)"
</Directory>
Enable it with a2enconf, reload the Apache service. Make sure the directory /var/www/html/.well-known/acme-challenge/ is created and owned by the Apache data user, e.g. www-data. It can be any directory, as long as you keep it consistent.
Then run this command:
certbot certonly --webroot --agree-tos --email youradmin@example.com --webroot-path /var/www/html/ --domain yoursite.example.com
Automatically enable HTTPS on your website with EFF's Certbot, deploying Let's Encrypt certificates.
Utilisation de l'outil cfssl pour gérer une PKI.
TL;DR: The PKI plateform of StartSSL, an Israeli leader of free SSL certificates, is now hosted by Qihoo 360, a Chinese Antivirus Company, which uses IPs from a Chinese state-owned telecommunication company.
Matrice de compatibilité navigateur / protocole SSL TLS.
On peut voir que Android ne gère pas TLS 1.2 avant Kitkat.
Or iOS9 exige maintenant du TLS 1.2 uniquement (avec des ciphers permettant le Perfect Foward Secrecy)
"""
If you’re developing a new app, you should use HTTPS exclusively. If you have an existing app, you should use HTTPS as much as you can right now, and create a plan for migrating the rest of your app as soon as possible. In addition, your communication through higher-level APIs needs to be encrypted using TLS version 1.2 with forward secrecy. If you try to make a connection that doesn't follow this requirement, an error is thrown. If your app needs to make a request to an insecure domain, you have to specify this domain in your app's Info.plist file.
"""
source: https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html
Cela peut poser problème quand on fait une app multiplateforme (android/iOS) et qu'on veut assurer la rétrocompatibilité. Il existe cependant une solution de contournement, en attendant: http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/
EDIT: et je précise car la doc officielle n'est pas claire
"""
iOS9 requires the server to only support TLSv1.2 and support perfect forward security.
"""
source: http://stackoverflow.com/questions/30778579/kcfstreamerrordomainssl-9802-when-connecting-to-a-server-by-ip-address-through
EDIT2: Je ne parle que de App Transport Security ici
"""
App Transport Security (ATS) lets an app add a declaration to its Info.plist file that specifies the domains with which it needs secure communication.
"""
EDIT3: Ce que j'ai dit plus haut est faux (TLS 1.2 only sur iOS9). Par contre il faut respecter les ciphers précisés ici: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/ et surtout avoir une signature en SHA256.
Comme dit dans cette doc, on peut passer à sha-2 tout en assurant une rétro-compatibilité avec sha-1 en ajoutant un certificat cross-signed (sha-1 et sha-256) dans le CHAIN.
Mais au vue de la matrice de compatibilité OS/navigateur https://support.globalsign.com/customer/portal/articles/1499561-sha-256-compatibility, je me dis que ça ne vaut pas trop la peine de se faire chier.
Alternative libre à SSLlabs (https://www.ssllabs.com/ssltest/) pour vérifier nos implémentations de TLS sur HTTP/SMTP/XMPP.
L'article qui en parle et qui permet, entre autre, de comprendre les fondamentaux:
- protocole SSL/TLS
- authentification
- chiffrement
- PFS
https://blog.imirhil.fr/cryptcheck-verifiez-vos-implementations-de-tls.html
vérifier la robustesse du chiffrement SSL/TLS avec des commandes openssl.
Ajouter son site à la liste (https://code.google.com/p/chromium/codesearch#chromium/src/net/http/transport_security_state_static.json) maintenue par l'équipe de chromium et également utilisée par Firefox, Safari et bientôt le nouveau IE.
Conditions techniques:
"""
1 Have a valid certificate.
2 Redirect all HTTP traffic to HTTPS—i.e. be HTTPS only.
3 Serve all subdomains over HTTPS, specifically including the www subdomain if a DNS record for that subdomain exists.
4 Serve an HSTS header on the base domain:
Expiry must be at least eighteen weeks (10886400 seconds).
The includeSubdomains token must be specified.
The preload token must be specified.
If you are serving a redirect, that redirect must have the HSTS header, not the page it redirects to.
"""
Faut pas se planter car on peut pas vraiment revenir en arrière.
"""
Be aware that inclusion in the preload list cannot really be undone. You can request to be removed, but it will take months for the deleted entry to reach users with a Chrome update and we cannot make guarantees about other browser vendors. Don't request inclusion unless you're sure that you can support HTTPS for the long term.
"""
Dans le cas de chromium, mettre du HSTS sur un site dont le certificat n'est pas reconnu (ou en tout cas pas ajouté aux magasins des certificats) empêchera purement et simplement l'accès au site. C'est pour cela que je n'en mets pas pour pub.jeekajoo.eu, car tout le monde n'a pas rajouté le root CA de cacert.org.
Rappel sur ce qu'est HSTS: https://fr.wikipedia.org/wiki/HTTP_Strict_Transport_Security
Vidéo de la conférence "SSL/TLS pour les nul-le-s" par @aeris pour PSES 2015
https://www.passageenseine.org/fr/programme/2015/samedi-20-juin/grande-salle/ssl-tls-pour-les-nul-le-s
tiens j'ignorais qu'on pouvait faire bouffer un dh_param de 2048bits à smtpd_tls_dh1024_param_file
sachant qu'il existe aussi smtpd_tls_dh512_param_file, mais pas smtpd_tls_dh2048_param_file
"""
smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem
"""
ça fonctionne à partir de postfix 2.2
bon, ça changera pas ma note (https://imirhil.fr/tls/smtp.html) je suis au top ^^'
sinon regarde du côté de WoSign (https://jeekajoo.eu/links/?am6Law)
https://www.ssllabs.com/ssltest/analyze.html?d=lehollandaisvolant.net
Tu autorises des ciphers à base de RC4, pas de forward secrecy, protocole sslv3 activé.
Visiblement tu utilises apache donc voici quelques pistes pour obtenir une meilleure note:
- https://www.jeveuxhttps.fr/Apache2
- https://wiki.mozilla.org/Security/Server_Side_TLS#Apache
- https://mozilla.github.io/server-side-tls/ssl-config-generator/
Concernant le certif lui-même, il manque lehollandaisvolant.net en alternative name.
bon courage
Certificat x509 gratuit pour site web ou email (S/MIME).
Pas de wildcard.
Signé par WoSign CA, une autorité de certification chinoise.
Avantage par rapport à startssl: la durée (3ans max).
Le site est victime de son succès à l'heure où j'écris mais j'ai tout de même réussi à obtenir un certificat pour searx.jeekajoo.eu.
Voila voila, en attendant https://letsencrypt.org/ (ou plutôt DANE, à mort les CA!).
Flaring up.
Forthcoming OpenSSL release announced (https://mta.openssl.org/pipermail/openssl-users/2015-March/000778.html) for March 19th;
includes "high" severity fix.
un outil graphique pour créer une CA afin de signer du certif x509
# BIEN (handshake failure quand on tente d'utiliser EXPORT en cipher)
openssl s_client -connect fralef.me:443 -cipher EXPORT
CONNECTED(00000003)
140181783762592:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:770:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 111 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
# PAS BIEN (ça se connecte quand on tente d'utiliser EXPORT en cipher)
openssl s_client -connect americanexpress.com:443 -cipher EXPORT
CONNECTED(00000003)
depth=1 C = US, O = GeoTrust Inc., CN = GeoTrust SSL CA - G4
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/C=US/ST=Arizona/L=Phoenix/O=American Express Travel Related Services Company Inc/OU=Consumer/CN=americanexpress.com
i:/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G4
1 s:/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G4
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGhDCCBWygAwIBAgICBMUwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMx
FjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHTAbBgNVBAMTFEdlb1RydXN0IFNTTCBD
QSAtIEc0MB4XDTE1MDIyNjIyMzYzMFoXDTE2MDIyOTA2NDQ0MlowgaExCzAJBgNV
BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRAwDgYDVQQHEwdQaG9lbml4MT0wOwYD
VQQKEzRBbWVyaWNhbiBFeHByZXNzIFRyYXZlbCBSZWxhdGVkIFNlcnZpY2VzIENv
bXBhbnkgSW5jMREwDwYDVQQLEwhDb25zdW1lcjEcMBoGA1UEAxMTYW1lcmljYW5l
eHByZXNzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKsqd3r
IrWoCx3D2FNk+AtyH2vCffYn+/mEzGYaVaOLQRXyekbXobiO2g4pUomXkbTJ7bZ6
/rBe2kxQh7Gj0yCXhxbkh6qSyTrOooWw7u6QgzG8mbDjTGhFb58G4RpW+nLwKEFG
whlys0skIKnjZ+QbUwY3zDvVMtG4G5tffYV5+DbZCmR5jitN5/itaLFOC0mRkfNt
9Ksw2jrC9mdwiog8A9aQWWyRFJt2OhykZE/KZriASuWYNYd0N61LPiqJ8U10ppzh
WIAD9DQRZ4QGFsL90O3Hd45euqdRUm4i/a4RQWPQl3qaOGXqugJfyQ6wl8eIF4TP
JGu3VzsRIeyyQIkCAwEAAaOCAyAwggMcMB8GA1UdIwQYMBaAFKwy7VrJ4N4wnJBY
VSZj9nKmVF/jMFcGCCsGAQUFBwEBBEswSTAfBggrBgEFBQcwAYYTaHR0cDovL2d3
LnN5bWNkLmNvbTAmBggrBgEFBQcwAoYaaHR0cDovL2d3LnN5bWNiLmNvbS9ndy5j
...
New, TLSv1/SSLv3, Cipher is EXP-DES-CBC-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : EXP-DES-CBC-SHA
Session-ID: 7E251B4491A26FC8F2A9F427BCE799A412E4A9CAE648DD1AA18BDEBEA70F5C5D
Session-ID-ctx:
Master-Key: 6F1F22E7E76A53CCAE59E8F7F1F1A27188C37C6A5E950395CD10E319A87C3C586B30A00DF9BB778035100F6550688B21
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
0000 - 36 22 e3 26 e6 2c 76 8f-c4 5b 52 b8 f5 4c b9 f9 6".&.,v..[R..L..
0010 - 39 95 10 b5 16 84 c3 7e-09 73 83 e7 b4 1f 9e af 9......~.s......
0020 - 20 a8 19 b1 06 11 f4 23-8c f9 21 99 80 f9 e2 24 ......#..!....$
0030 - 9a 06 97 d0 1e f8 9c c6-36 e0 e3 7b 02 ae da 82 ........6..{....
0040 - e7 8e a2 05 80 b2 7f ce-ec 39 a3 d1 bd a7 37 41 .........9....7A
0050 - 3f ec 1b aa ec 95 d2 2f-6e 3e 0f 86 f1 11 90 8f ?....../n>......
0060 - 73 82 5f fd 31 a8 74 13-98 f2 dd 9a 33 b2 24 8e s._.1.t.....3.$.
0070 - 68 d0 7d 88 22 85 ba 6f-38 11 f2 fe b3 9c d5 9d h.}."..o8.......
0080 - d7 1b 7d 02 7b bb f2 25-5c 11 e3 df ed f5 f2 b7 ..}.{..%\.......
0090 - ff 92 db 1c 0f e0 40 c9-22 16 f5 e0 ce 73 55 85 ......@."....sU.
Start Time: 1425474917
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)
---
commande via https://twitter.com/xme/status/573107012717977600
"""
Let’s Encrypt is a new Certificate Authority:
It’s free, automated, and open.
Arriving Mid-2015
"""
Demo: https://www.youtube.com/watch?v=Gas_sSB-5SU