OpenSslPKCS12 » Cronologia » Versione 9
Simone Piccardi, 17-04-2023 12:39
1 | 7 | Simone Piccardi | h1. Come estrarre CA, Certificati e chiavi da un file PKCS12 o PFX |
---|---|---|---|
2 | 1 | Amministratore Truelite | |
3 | 5 | Simone Piccardi | È necessario avere installato OpenSSL nel proprio sistema, questo si può fare con: |
4 | 1 | Amministratore Truelite | |
5 | <pre> |
||
6 | 6 | Simone Piccardi | apt-get install openssl |
7 | 5 | Simone Piccardi | </pre> |
8 | 4 | Amministratore Truelite | |
9 | 6 | Simone Piccardi | si ricordi che l'estrazione della chiave su un file ne rimuove la password, si abbia cura di farla in una directory non leggibile da terzi o di predisporre una opportuna umask. Si aggiustino poi i permessi dei file se li si devono spostare (600/640 per la chiave, 644 per i certificati). |
10 | 1 | Amministratore Truelite | |
11 | 7 | Simone Piccardi | h2. Estrazione da un file .p12 (PKCS12) |
12 | 1 | Amministratore Truelite | |
13 | 9 | Simone Piccardi | Quando si vogliono utilizzare i dati di un certificato PKCS12 con di programmi che utilizzano il formato PEM per chiavi e certificati SSL (come usuale per demoni di sistema come Apache, Postfix, Nginx, ecc.) occorre estrarli esplicitamente. |
14 | |||
15 | 7 | Simone Piccardi | h3. Estrazione del certificato: |
16 | |||
17 | 1 | Amministratore Truelite | <pre> |
18 | openssl pkcs12 -clcerts -nokeys -in mycert.p12 -out usercert.pem |
||
19 | </pre> |
||
20 | 4 | Amministratore Truelite | |
21 | 7 | Simone Piccardi | h3. Estrazione della chiave: |
22 | 1 | Amministratore Truelite | |
23 | <pre> |
||
24 | openssl pkcs12 -nocerts -in mycert.p12 -out userkey.pem |
||
25 | </pre> |
||
26 | 4 | Amministratore Truelite | |
27 | 7 | Simone Piccardi | h3. Estrazione del certificato della CA: |
28 | 1 | Amministratore Truelite | |
29 | <pre> |
||
30 | openssl pkcs12 -nokeys -nodes -cacerts -in mycert.p12 -out cacert.pem |
||
31 | </pre> |
||
32 | 6 | Simone Piccardi | |
33 | 9 | Simone Piccardi | |
34 | 6 | Simone Piccardi | h3. Cambiamento della password su un certificato PKCS12 |
35 | 1 | Amministratore Truelite | |
36 | 9 | Simone Piccardi | Deve essere fatto in due passi, prima deve essere estratto il contenuto del certificato PKCS12 su un file @.pem@ con: |
37 | 6 | Simone Piccardi | |
38 | <pre> |
||
39 | openssl pkcs12 -in originale.p12 -out temp.pem -nodes |
||
40 | 1 | Amministratore Truelite | </pre> |
41 | 6 | Simone Piccardi | |
42 | 9 | Simone Piccardi | verrà chiesta la password originale, data la quale tutti dati verranno salvati senza password su @temp.pem@, a questo punto lo si potrà rigenerare con una password diversa con: |
43 | 1 | Amministratore Truelite | |
44 | <pre> |
||
45 | openssl pkcs12 -export -in temp.pem -out nuovo.p12 |
||
46 | </pre> |
||
47 | |||
48 | 9 | Simone Piccardi | si dovrà immettere la nuova password due volte (la seconda per conferma). Per avere un certificato senza password si prema due volte invio. Completato il cambiamento si cancellino i file che non servono più (compreso il temporaneo). |
49 | 7 | Simone Piccardi | |
50 | 8 | Simone Piccardi | h3. Ricodifica di un certificato PKCS12 con codifica obsoleta |
51 | 7 | Simone Piccardi | |
52 | 9 | Simone Piccardi | Può capitare con dei certificati PKCS12 di OpenVPN generati prima del passaggio a OpenSSL 3, che depreca una serie di codifiche interne degli stessi, cosa che rende illeggibili detti certificati sulle macchine che hanno questa nuova versione, l'errore si verifica provando ad esportare il certificato come nel caso precedente, in cui si ottiene; |
53 | 8 | Simone Piccardi | |
54 | <pre> |
||
55 | root@bookworm:~# openssl pkcs12 -in cert.p12 -out temp.pem --nodes |
||
56 | 1 | Amministratore Truelite | Enter Import Password: |
57 | 8 | Simone Piccardi | Error outputting keys and certificates |
58 | 4067C4EF727F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:../crypto/evp/evp_fetch.c:373:Global default library context, Algorithm (RC2-40-CBC : 0), Properties () |
||
59 | </pre> |
||
60 | |||
61 | 9 | Simone Piccardi | per poter eseguire l'esportazione e poi ricodificare il certificato con un algoritmo supportato si deve eseguire l'esportazione con l'opzione aggiuntiva @--legacy@: |
62 | 8 | Simone Piccardi | |
63 | <pre> |
||
64 | openssl pkcs12 -in cert.p12 -out temp.pem --nodes --legacy |
||
65 | </pre> |
||
66 | 1 | Amministratore Truelite | |
67 | 9 | Simone Piccardi | e poi si potrà passare a ricreare un PKCS12 ex-novo con: |
68 | 8 | Simone Piccardi | |
69 | <pre> |
||
70 | openssl pkcs12 -export -in temp.pem -out nuovo.p12 |
||
71 | </pre> |
||
72 | |||
73 | 9 | Simone Piccardi | che richiede due volta una passphrase e salva il nuovo certificato in @nuovo.p12@ |
74 | 8 | Simone Piccardi | |
75 | 7 | Simone Piccardi | h2. Estrazione da un file .pfx |
76 | |||
77 | h3. Estrazione del certificato: |
||
78 | |||
79 | <pre> |
||
80 | openssl pkcs12 -in certificate.pfx -nokeys -out cert.pem |
||
81 | </pre> |
||
82 | 1 | Amministratore Truelite | |
83 | 8 | Simone Piccardi | chiederà la passphrase del certificato e creerà il file @cert.pem@ col certificato. |
84 | 7 | Simone Piccardi | |
85 | 1 | Amministratore Truelite | h3. Estrazione della chiave: |
86 | |||
87 | 8 | Simone Piccardi | Quando si deve estrarre la chiave (privata) da un file @.pfx@ occorrerà passare dall'esportazione dei dati: |
88 | |||
89 | 7 | Simone Piccardi | <pre> |
90 | 1 | Amministratore Truelite | openssl pkcs12 -in certificate.pfx -nocerts -out key.pem -nodes |
91 | 7 | Simone Piccardi | </pre> |
92 | |||
93 | 8 | Simone Piccardi | chiederà la passphrase del certificato e creerà il file @key.pem@ con dentro chiave e certificato, poi per ottenere la sola chiave occorrerà: |
94 | 7 | Simone Piccardi | |
95 | <pre> |
||
96 | openssl rsa -in key.pem -out server.key |
||
97 | </pre> |