doc:appunti:linux:sa:openvpn
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:linux:sa:openvpn [2009/03/21 14:25] – niccolo | doc:appunti:linux:sa:openvpn [2020/02/24 17:59] (current) – niccolo | ||
---|---|---|---|
Line 13: | Line 13: | ||
default_crl_days | default_crl_days | ||
default_bits | default_bits | ||
+ | |||
+ | [ req_distinguished_name ] | ||
countryName_default | countryName_default | ||
stateOrProvinceName_default | stateOrProvinceName_default | ||
Line 30: | Line 32: | ||
* **'' | * **'' | ||
- | * **'' | + | * **'' |
* **'' | * **'' | ||
* **'' | * **'' | ||
Line 82: | Line 84: | ||
# File containing Diffie Hellman parameters in .pem format | # File containing Diffie Hellman parameters in .pem format | ||
# Diffie Hellman parameters may be considered public. | # Diffie Hellman parameters may be considered public. | ||
- | # Generated by: openssl dhparam -out server.rigacci.org_dh1024.pem 1024 | + | # Generated by: openssl dhparam -out ssl/server.rigacci.org_dh2048.pem 2048 |
- | dh ssl/ | + | dh ssl/ |
# Certificate Authority (CA) file in .pem format. | # Certificate Authority (CA) file in .pem format. | ||
Line 89: | Line 91: | ||
# mkdir ssl/private | # mkdir ssl/private | ||
# chmod 0700 ssl/private | # chmod 0700 ssl/private | ||
- | # openssl req -config ssl/ | + | # openssl req -config ssl/ |
# | # | ||
# chmod 0600 ssl/ | # chmod 0600 ssl/ | ||
Line 120: | Line 122: | ||
# To revoke a certificate (then you need to regenerate the list): | # To revoke a certificate (then you need to regenerate the list): | ||
# openssl ca -config ssl/ | # openssl ca -config ssl/ | ||
- | # -cert ssl/ | + | # -cert ssl/ |
crl-verify ssl/ | crl-verify ssl/ | ||
Line 137: | Line 139: | ||
push "route 10.38.0.1" | push "route 10.38.0.1" | ||
push " | push " | ||
- | ifconfig-pool 10.38.0.4 10.38.255.251 | + | ifconfig-pool 10.38.0.4 10.38.99.251 |
# | # | ||
# To simplify the above configuration you can use the helper directive | # To simplify the above configuration you can use the helper directive | ||
Line 159: | Line 161: | ||
</ | </ | ||
- | Si può fare il push dal server | + | Si può fare il push verso il client di parametri |
< | < | ||
- | ifconfig-push | + | ifconfig-push |
</ | </ | ||
+ | |||
+ | Notare che l' | ||
I file gestiti da openssl sono in formato **PEM** ([[wp> | I file gestiti da openssl sono in formato **PEM** ([[wp> | ||
Line 192: | Line 196: | ||
</ | </ | ||
- | ===== Revoca di una chiave ===== | + | ===== Revoca di un certificato client (chiave) ===== |
Qualora si voglia impedire l' | Qualora si voglia impedire l' | ||
< | < | ||
- | openssl ca -config ssl/ | + | openssl ca -config ssl/ |
- | | + | -cert ssl/ |
+ | -revoke niccolo@rigacci.org_cert.pem | ||
</ | </ | ||
Line 206: | Line 211: | ||
< | < | ||
- | openssl ca -config ssl/ | + | openssl ca -config ssl/ |
- | -cert ssl/ | + | |
+ | -gencrl | ||
</ | </ | ||
Line 271: | Line 277: | ||
</ | </ | ||
+ | ===== 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:// | ||
+ | |||
+ | **ATTENZIONE** ai nomi dei file, che sono **diversi rispetto agli esempi riportati sopra**; tutto è stato eseguito nella directory **/ | ||
+ | |||
+ | Anzitutto si deve **revocare il vecchio certificato**, | ||
+ | |||
+ | < | ||
+ | failed to update database | ||
+ | TXT_DB error number 2 | ||
+ | </ | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | < | ||
+ | # Revoke old certificate. | ||
+ | openssl ca -config openssl.cnf -keyfile private/ | ||
+ | -cert vpn.rigacci.org_cacert.pem -revoke newcerts/ | ||
+ | # Generate the new CRL. | ||
+ | openssl ca -config openssl.cnf -gencrl -keyfile private/ | ||
+ | -cert vpn.rigacci.org_cacert.pem -out vpn.rigacci.org_crl.pem | ||
+ | </ | ||
+ | |||
+ | Alla richiesta di **A challenge password** e **An optional company name** si è lasciata una risposta vuota. | ||
+ | |||
+ | Il vecchio certificato può essere salvato o rimosso: | ||
+ | |||
+ | < | ||
+ | mv private/ | ||
+ | mv vpn.rigacci.org_cert.pem vpn.rigacci.org_cert.pem.expired | ||
+ | </ | ||
+ | |||
+ | Ecco quindi la **generazione del nuovo certificato** con la relativa richiesta di firma CSR, seguita dalla **firma da parte della CA**: | ||
+ | |||
+ | < | ||
+ | openssl req -config openssl.cnf -nodes -new \ | ||
+ | | ||
+ | chmod 0600 private/ | ||
+ | openssl ca -config openssl.cnf -in vpn.rigacci.org_csr.pem -cert vpn.rigacci.org_cacert.pem \ | ||
+ | -keyfile private/ | ||
+ | rm vpn.rigacci.org_csr.pem | ||
+ | </ |
doc/appunti/linux/sa/openvpn.1237641909.txt.gz · Last modified: 2009/03/21 14:25 by niccolo