User Tools

Site Tools


doc:appunti:linux:sa:openvpn

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
doc:appunti:linux:sa:openvpn [2017/02/01 10:50] – [Revoca di una chiave] niccolodoc:appunti:linux:sa:openvpn [2018/01/01 07:30] – [Rinnovo del certificato del server] niccolo
Line 194: Line 194:
 </code> </code>
  
-===== Revoca di una chiave =====+===== Revoca di un certificato client (chiave=====
  
 Qualora si voglia impedire l'accesso ad un client (oppure se la sua chiave è stata compromessa), si revoca... Qualora si voglia impedire l'accesso ad un client (oppure se la sua chiave è stata compromessa), si revoca...
Line 200: Line 200:
 <code> <code>
 openssl ca -config ssl/openssl.cnf \ openssl ca -config ssl/openssl.cnf \
-    -keyfile ssl/private/rigacci.org_cakey.pem -cert ssl/rigacciorg_cacert.pem \+    -cert ssl/rigacciorg_cacert.pem -keyfile ssl/private/rigacci.org_cakey.pem \
     -revoke niccolo@rigacci.org_cert.pem     -revoke niccolo@rigacci.org_cert.pem
 </code> </code>
Line 210: Line 210:
 <code> <code>
 openssl ca -config ssl/openssl.cnf \ openssl ca -config ssl/openssl.cnf \
-    -keyfile ssl/private/rigacci.org_cakey.pem -cert ssl/rigacci.org_cacert.pem \+    -cert ssl/rigacciorg_cacert.pem -keyfile ssl/private/rigacci.org_cakey.pem \
     -gencrl -out ssl/rigacci.org_crl.pem     -gencrl -out ssl/rigacci.org_crl.pem
 </code> </code>
Line 275: Line 275:
 </file> </file>
  
 +===== Rinnovo del certificato del server =====
 +
 +Quando **scade il certificato del server smettono di funzionare TUTTE le VPN**. Per fortuna è sufficiente rinnovare tale certificato e **non è necessario distribuirlo** su tutti i client. La procedura che segue genera una nuova chiave e un nuovo certificato firmato dalla stessa CA locale.
 +
 +Il discorso è diverso quando **scade il certificato della CA** locale, in questo caso per ripristinare il funzionamento delle VPN senza distribuire il nuovo CA cert è necessario utilizzare un trucco: generare un nuovo CA cert, ma riutilizzando la vecchia chiave . La soluzione (da verificare) è descritta nel post [[ https://serverfault.com/questions/306345/certification-authority-root-certificate-expiry-and-renewal|Certification authority root certificate expiry and renewal]]. Altri dettagli si trovano nel post [[https://forums.openvpn.net/viewtopic.php?t=18671|Expired CA - clients can't connect]].
 +
 +**ATTENZIONE** ai nomi dei file, che sono **diversi rispetto agli esempi riportati sopra**; tutto è stato eseguito nella directory **/etc/openvpn/ssl/**. La seguente ricetta è stata verificata su Debian 8 Jessie. [[https://it.wiktionary.org/wiki/YMMV|YMMV]]!
 +
 +Anzitutto si deve **revocare il vecchio certificato**, altrimenti al momento della firma del nuovo si ottiene l'errore:
 +
 +<code>
 +failed to update database
 +TXT_DB error number 2
 +</code>
 +
 +infatti il nuovo certificato avrà lo stesso nome del vecchio. Dopo aver revocato un certificato si deve sempre rigenerare la CRL lista dei certificati revocati. **ATTENZIONE** a individuare il corretto certificato! Nel nostro esempio è **00.pem**, ma si deve verificare il file **index.txt** e i file nella directory **newcerts/**:
 +
 +<code>
 +# Revoke old certificate.
 +openssl ca -config openssl.cnf -keyfile private/vpn.rigacci.org_cakey.pem \
 +    -cert vpn.rigacci.org_cacert.pem -revoke newcerts/00.pem
 +# Generate the new CRL.
 +openssl ca -config openssl.cnf -gencrl -keyfile private/vpn.rigacci.org_cakey.pem \
 +    -cert vpn.rigacci.org_cacert.pem -out vpn.rigacci.org_crl.pem
 +</code>
 +
 +Alla richiesta di **A challenge password** e **An optional company name** si è lasciata una risposta vuota.
 +
 +Il vecchio certificato può essere salvato o rimosso:
 +
 +<code>
 +mv private/vpn.rigacci.org_key.pem private/vpn.rigacci.org_key.pem.expired
 +mv vpn.rigacci.org_cert.pem vpn.rigacci.org_cert.pem.expired
 +</code>
 +
 +Ecco quindi la **generazione del nuovo certificato** con la relativa richiesta di firma CSR, seguita dalla **firma da parte della CA**:
 +
 +<code>
 +openssl req -config openssl.cnf -nodes -new \
 +     -keyout private/vpn.rigacci.org_key.pem -out vpn.rigacci.org_csr.pem
 +chmod 0600 private/vpn.rigacci.org_key.pem
 +openssl ca -config openssl.cnf -in vpn.rigacci.org_csr.pem -cert vpn.rigacci.org_cacert.pem \
 +    -keyfile private/vpn.rigacci.org_cakey.pem -out vpn.rigacci.org_cert.pem
 +rm vpn.rigacci.org_csr.pem
 +</code>
doc/appunti/linux/sa/openvpn.txt · Last modified: 2020/02/24 17:59 by niccolo