Letsencrypt/openssl

Useful Commands

OpenSSL

notes based on CentOS 6.7





Τα πιστοποιητικά (certificates) ονομάζονται x509



Πως μπορούμε να δούμε το πιστοποιητικό ενός site


$ openssl s_client -connect hackerspace.gr:443  </dev/null



Το πιστοποιητικό είναι μεταξύ του

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----



Μπορούμε να μετατρέψουμε το πιστοποιητικό σε text output για να πάρουμε περισσότερες πληροφορίες, όπως πότε λήγει:

$ openssl x509 -text -in <(openssl s_client -connect hackerspace.gr:443)



ή

$ openssl x509 -text -in <(openssl s_client -connect hackerspace.gr:443) | grep -E 'Not Before|Not After'

            Not Before: Jun 12 17:55:50 2015 GMT
            Not After : Jun 13 05:21:51 2017 GMT



Πως μπορούμε να δούμε, ποιος έχει εκδόσει το πιστοποιητικό και ποιοι οργανισμοί έχουν υπογράψει

$ openssl s_client -connect hackerspace.gr:443  </dev/null  | grep ^depth



depth=2 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Certification Authority

depth=1 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Class 2 Primary Intermediate Server CA

depth=0 C = GR, ST = Attica, L = Filadelfeia, O = Pierros Papadeas, CN = *.hackerspace.gr, emailAddress = postmaster@hackerspace.gr

DONE



Το depth=0 είναι το πιστοποιητικό μας, 
το depth=1 είναι ο intermediate 
το depth=2 είναι o root Certificate Authority







Πως βλέπουμε όλα τα πιστοποιητικά από ένα site (δλδ το δικό του και των intermediates):




$ openssl s_client -showcerts -connect hackerspace.gr:443 </dev/null



save them all to a file:


$ openssl s_client -showcerts -connect hackerspace.gr:443 </dev/null | sed -n '/BEGIN/,/END/p' > /tmp/certs




save the first certificate (site certificate) to a file:

$ openssl s_client -showcerts -connect hackerspace.gr:443 </dev/null | sed -n '/BEGIN/,/END/p;/END/q'  > /tmp/hackerspace.crt



verify it:




$ openssl x509 -text -in /tmp/hackerspace.crt



verify chain




$ openssl verify -CAfile <(cat /etc/pki/tls/certs/ca-bundle.crt /tmp/certs ) /tmp/hackerspace.crt 

/tmp/hackerspace.crt: OK








=== Let's Encrypt === 



O client του Let's Encrypt θέλει python 2.7

Σε CentOS 6 έχει by default python 2.6



Οπότε παρακάτω είναι μερικές