openssl per CA interna: come faccio a "Controllare che la richiesta corrisponda alla firma"?

1

Sto seguendo questa guida per creare un'Autorità di certificazione per uso interno.

Sono nella fase "Crea il certificato intermedio" in cui la CA intermedia deve essere firmata dalla CA radice.

openssl ca -config openssl.cnf -extensions v3_intermediate_ca \
  -days 3650 -notext -md sha256 \
  -in intermediate/csr/intermediate.csr.pem \
  -out intermediate/certs/intermediate.cert.pem

Qui, openssl.cnf punta al certificato che ho generato per la CA radice.

[ CA_default ]
private_key = $dir/private/ca-root.private.encrypted.key

OpenSSL quindi mi lancia questo in modo interattivo

Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 4096 (0x1000)
        Validity
            Not Before: Oct 21 17:12:48 2016 GMT
            Not After : Oct 31 17:12:48 2018 GMT
        Subject:
            [...snip...]
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                EC:D9:FD:DC:AA:B9:D3:93:83:14:D2:4D:84:C6:75:A2:20:90:A1:E6
            X509v3 Authority Key Identifier: 
                keyid:EB:81:E3:6B:5D:32:DD:06:0A:D8:4F:B6:D0:5C:A2:BD:C9:CF:8E:79

            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
Certificate is to be certified until Oct 31 17:12:48 2018 GMT (740 days)
Sign the certificate? [y/n]:

Che cosa sto cercando qui? Ho ritagliato la sezione Subject: . A prescindere dal mettere a fuoco quei dettagli (ovviamente corrispondono a le cose che ho creato io stesso un minuto ), dovrei fare qualcos'altro per verificare che il certificato sia valido?

E se il CSR proveniva da una terza parte, che cosa avrei intenzione di verificare?

    
posta spraff 21.10.2016 - 19:25
fonte

1 risposta

1

Check ... signature / Signature ok ti dice che il openssl program ha controllato la firma CSR e ha fatto in modo che verificasse, prima di fare qualsiasi altra cosa. Non è necessario controllare la firma e non sarebbe pratico. ca quindi visualizza solo il nome del soggetto per impostazione predefinita, o la maggior parte dei dettagli se name_opt e / o cert_opt è configurato come apparentemente hai, e a meno che tu non usi -batch sei chiesto se firmare (emettere) il certificato proposto o meno.

Per un CSR che hai generato da te, probabilmente ti fidi di te stesso (a meno che tu non sia Michael Garibaldi ), quindi approva. Se la CSR proviene da una terza parte, la migliore pratica è di controllare prima in esecuzione ca , perché la cosa più importante da verificare è se il richiedente è legittimo e autorizzato che non è possibile fare dal solo contenuto CSR (o cert), quindi di nuovo basta approvare. Ma se non lo hai ancora controllato, questa è la tua ultima opportunità per:

  • controlla l'oggetto e facoltativamente SAN identifica in modo appropriato la parte; o per semplici casi gerarchici X.500 (che non sono così comuni come sperato da CCITT) è possibile configurare policy per controllare automaticamente il DN oggetto rispetto al DN dell'emittente

  • se hai copiato estensioni dal CSR, che non è l'impostazione predefinita, verifica che descrivano le funzionalità che desideri "certificare" per questa parte; se hai usato estensioni dai tuoi file di configurazione puoi fare il doppio controllo non c'è errore (anche se hai controllato il CSR)

  • forse controlla l'algoritmo della chiave del soggetto e le dimensioni soddisfano i requisiti di sicurezza e interoperabilità per il tuo ambiente e / o questa parte

risposta data 22.10.2016 - 04:10
fonte