Difference between revisions of "Letsencrypt/openssl"

From Hackerspace.gr
Jump to: navigation, search
(Let's Encrypt)
Line 108: Line 108:
  
 
=== Let's Encrypt ===  
 
=== Let's Encrypt ===  
 +
 +
==== Διευκρίνηση ====
 +
 +
Το '''letsencrypt''' είναι πρόγραμμα -client- που αυτόματα εκδίδει πιστοποιητικά ασφαλείας (x509 certificates) με έναν εντελώς αυτόματο τρόπο υλοποιώντας το πρωτόκολλο Automated Certificate Management Environment (ACME). To ACME είναι ένας τρόπος αυθεντικοποίησης ενός domain με ένα web server.
 +
  
 
O client του Let's Encrypt θέλει python 2.7  
 
O client του Let's Encrypt θέλει python 2.7  
 +
 +
κι όπως είπαμε η διαδικασία έκδοσης πιστοποιητικών γίνεται εντελώς αυτόματα.
 +
 +
==== Installation ====
 +
===== CentOS 7 =====
 +
 +
<pre>
 +
# cat /etc/redhat-release
 +
CentOS Linux release 7.2.1511 (Core)
 +
</pre>
 +
 +
<pre>
 +
# yum -y install letsencrypt
 +
</pre>
 +
 +
===== CentOS 6 ====
  
 
Σε CentOS 6 έχει by default python 2.6
 
Σε CentOS 6 έχει by default python 2.6
  
Οπότε παρακάτω είναι μερικές
+
Οπότε ο προτεινόμενος τρόπος είναι ο παρακάτω:
 +
 
 +
<pre>
 +
# git clone https://github.com/letsencrypt/letsencrypt
 +
# cd letsencrypt
 +
</pre>
 +
 
 +
Θα χρειαστεί να "στήσουμε" το περιβάλλον:
 +
 
 +
<pre>
 +
# ./letsencrypt-auto-source/letsencrypt-auto --os-packages-only
 +
</pre>
 +
 
 +
ώστε να εγκατασταθούν όλα τα προγράμματα που χρειάζεται ο client.
 +
 
 +
Υπενθυμίζω πως τίποτα από όλα αυτά δεν χρειάζονται, εάν η διανομή σας

Revision as of 11:20, 29 March 2016

Useful Commands

OpenSSL

notes based on CentOS 6.7

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

View a x509

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


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

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

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

Text Output

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

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

Date Expiration

$ 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

Chain

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

$ 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

intermediates

Πως βλέπουμε όλα τα πιστοποιητικά από ένα 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

Διευκρίνηση

Το letsencrypt είναι πρόγραμμα -client- που αυτόματα εκδίδει πιστοποιητικά ασφαλείας (x509 certificates) με έναν εντελώς αυτόματο τρόπο υλοποιώντας το πρωτόκολλο Automated Certificate Management Environment (ACME). To ACME είναι ένας τρόπος αυθεντικοποίησης ενός domain με ένα web server.


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

κι όπως είπαμε η διαδικασία έκδοσης πιστοποιητικών γίνεται εντελώς αυτόματα.

Installation

CentOS 7
# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
# yum -y install letsencrypt 

= CentOS 6

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

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

# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt

Θα χρειαστεί να "στήσουμε" το περιβάλλον:

# ./letsencrypt-auto-source/letsencrypt-auto --os-packages-only

ώστε να εγκατασταθούν όλα τα προγράμματα που χρειάζεται ο client.

Υπενθυμίζω πως τίποτα από όλα αυτά δεν χρειάζονται, εάν η διανομή σας