Project

General

Profile

OpenSslPKCS12 » History » Version 8

Simone Piccardi, 04/17/2023 12:33 PM

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 7 Simone Piccardi
h3. Estrazione del certificato:
14
15 1 Amministratore Truelite
<pre>
16
openssl pkcs12 -clcerts -nokeys -in mycert.p12 -out usercert.pem
17
</pre>
18 4 Amministratore Truelite
19 7 Simone Piccardi
h3. Estrazione della chiave:
20 1 Amministratore Truelite
21
<pre>
22
openssl pkcs12 -nocerts -in mycert.p12 -out userkey.pem
23
</pre>
24 4 Amministratore Truelite
25 7 Simone Piccardi
h3. Estrazione del certificato della CA:
26 1 Amministratore Truelite
27
<pre>
28
openssl pkcs12 -nokeys -nodes -cacerts -in mycert.p12 -out cacert.pem
29
</pre>
30 6 Simone Piccardi
31 7 Simone Piccardi
h3. Cambiamento della password su un certificato PKCS12
32 6 Simone Piccardi
33
Deve essere fatto in due passi, prima deve essere estratto su un file @.pem@ con:
34
35
<pre>
36
openssl pkcs12 -in originale.p12 -out temp.pem -nodes
37
</pre>
38
39
verrà chiesta la password originale, data la quale verrà salvato senza password su @temp.pem@, a questo punto lo si potrà rigenerare con una password diversa con:
40
41 1 Amministratore Truelite
<pre>
42
openssl pkcs12 -export -in temp.pem -out nuovo.p12
43
</pre>
44
45
si dovrà immettere la nuova password due volte (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).
46 7 Simone Piccardi
47 8 Simone Piccardi
h3. Ricodifica di un certificato PKCS12 con codifica obsoleta
48 7 Simone Piccardi
49 8 Simone Piccardi
Può capitare con dei certificati di OpenVPN generati prima del passaggio a OpenSSL 3, che depreca una serie di codifiche interne degli stessi, cosa che legge 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;
50
51
<pre>
52
root@bookworm:~# openssl pkcs12 -in cert.p12 -out temp.pem --nodes
53
Enter Import Password:
54
Error outputting keys and certificates
55
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 ()
56
</pre>
57
58
per poter eseguire l'esportazione e poi ricodificare il certificato con un algoritmo supportato si deve eseguire l'esportazione con:
59
60
<pre>
61
openssl pkcs12 -in cert.p12 -out temp.pem --nodes --legacy
62
</pre>
63
64
e ricreario ex-novo con:
65
66
<pre>
67
openssl pkcs12 -export -in temp.pem -out nuovo.p12
68
</pre>
69
70
che richiede due volta una passphrase e crea il nuovo certificato in @nuovo.p12@
71
72 7 Simone Piccardi
h2. Estrazione da un file .pfx
73
74
h3. Estrazione del certificato:
75
76
<pre>
77
openssl pkcs12 -in certificate.pfx -nokeys -out cert.pem
78
</pre>
79 1 Amministratore Truelite
80 8 Simone Piccardi
chiederà la passphrase del certificato e creerà il file @cert.pem@ col certificato. 
81 7 Simone Piccardi
82 1 Amministratore Truelite
h3. Estrazione della chiave:
83
84 8 Simone Piccardi
Quando si deve estrarre la chiave (privata) da un file @.pfx@ occorrerà passare dall'esportazione dei dati:
85
86 7 Simone Piccardi
<pre>
87 1 Amministratore Truelite
openssl pkcs12 -in certificate.pfx -nocerts -out key.pem -nodes
88 7 Simone Piccardi
</pre>
89
90 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à:
91 7 Simone Piccardi
92
<pre>
93
openssl rsa -in key.pem -out server.key
94
</pre>