Recentemente, ho lavorato all'impostazione del blocco dei certificati per la nostra app per dispositivi mobili. Sto usando l'hash dell'oggetto Subject Public Key Information (SPKI) per il blocco. Ora, ho avuto l'impressione che SPKI sarebbe lo stesso se creerò un altro certificato dalla stessa chiave privata. Così l'ho provato - ho creato una chiave privata usando SSL e un CSR corrispondente. Ora, ho firmato questo CSR usando due chiavi private diverse e, con mia sorpresa, lo SPKI (e l'hash del pin) non era lo stesso. È questo il comportamento previsto? O è qualcosa che mi manca? Anche la PKI nel certificato è firmata?
Questi sono i comandi di openssl che ho usato:
Per generare un CSR:
openssl req -new -sha256 -key private.key -out private.csr
Per generare una chiave privata CA:
openssl genrsa -des3 -out ca.key 2048
Per firmare il CSR:
openssl x509 -req -days 365 -in private.csr -signkey ca.key -out test.crt
Questo è l'inizio dello SPKI dal primo certificato:
BA 86 D3 0E E8 CC F3 C0 A2 B9 1E 8B BA 45 80 11 EF 13 CB 4F 76 CE A8 6A
E questo è l'inizio dello SPKI dal secondo certificato:
CC 96 B3 AB EA 0D FC 66 91 D8 E2 50 2B A7 8F 63 91 4C 7E 10 A3 48 1E 9F
Per calcolare gli hash, ho usato il modo più semplice: ho importato i certificati nel portachiavi mac e li ho aperti:
Hoancheutilizzatoquesto