Letsencrypt/openssl
From Hackerspace.gr
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
Οπότε παρακάτω είναι μερικές