Vincoli di base OpenSSL

4

Ho lavorato al libro " Pianificazione per PKI " e sono riuscito a il punto in cui voglio creare un certificato di entità finale. Tuttavia, mi trovo di fronte a un messaggio di errore che dice che ci sono errori di estensione all'interno del certificato. Sono stato guidato dal mio insegnante a studiare attentamente come modificare l'estensione del vincolo di base per risolvere questo problema.

Il libro raccomanda contro l'uso dell'estensione del vincolo di base nei certificati dell'entità finale. Tuttavia, quando semplicemente lo elimino, viene inserita un'estensione predefinita di " CA:TRUE ".

Quindi le mie domande sono:

  1. C'è un modo per ignorare questo inserimento automatico o ho frainteso il libro?
  2. Qualche idea su cosa potrei fare male?

Di seguito è l'estensione che ho utilizzato per creare il certificato:

[ server_ext ]
basicConstraints        = critical,CA:false
nsCertType              = server
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid,issuer:always
keyUsage                = critical,digitalSignature,keyEncipherment
extendedKeyUsage        = serverAuth
    
posta MPol 08.03.2017 - 15:13
fonte

2 risposte

1

Sono riuscito a sovrascrivere la funzionalità predefinita che includeva il vincolo di base quando mancava dall'estensione. Ha a che fare con l'attributo csr e copy extensions nel file openssl.cnf.

    
risposta data 12.03.2017 - 10:40
fonte
0

Sospetto che le pagine man di openSSL possano essere di aiuto:

If the basicConstraints extension is absent then the certificate is considered to be a "possible CA" other extensions are checked according to the intended use of the certificate. A warning is given in this case because the certificate should really not be regarded as a CA: however it is allowed to be a CA to work around some broken software.

vale a dire. il KeyUsage / ExtendedKeyUsage sarebbe (sembra) essere usato per indovinare.

Tratto da link , sezione Estensioni certificato.

Questo sembra (per me) essere diverso da quello che dice il libro di cucina openssl ( link ):

The Basic Constraints extension is used to mark certificates as belonging to a CA, giving them the ability to sign other certificates. Non-CA certificates will either have this extension omitted or will have the value of CA set to FALSE. This extension is critical, which means that all software-consuming certificates must understand its meaning.

Controllo della pagina man per x509v3_config ( link - consulta la sezione Estensioni standard), una possibile il problema è la tua sintassi.

Forniscono i seguenti esempi:

basicConstraints=CA:TRUE

basicConstraints=CA:FALSE

basicConstraints=critical,CA:TRUE, pathlen:0

Forniscono un ulteriore modo per ottenere risultati simili:

basicConstraints=critical,@bs_section

[bs_section]

CA=true
pathlen=1

Vorrei semplicemente modificare la tua configurazione per leggere:

basicConstraints=CA:FALSE

Al posto di:

basicConstraints = critical,CA:false

In questo modo, il tuo profilo è esplicito e dovrebbe sovrascrivere qualsiasi altra configurazione (possibilmente opposta) applicata altrove.

    
risposta data 08.03.2017 - 18:30
fonte

Leggi altre domande sui tag