Aggiunta di nomi alternativi di soggetti (SAN) a una richiesta di firma del certificato (CSR) esistente

Può qualcuno dirmi come faccio ad aggiungere un numero di nomi alternativi di sobject a una CSR esistente?

Non sto parlando di generare una CSR con SAN o aggiungere SAN al momento della firma – so come fare entrambe queste cose.

Background: Il problema che abbiamo è che il canvasio HP blade consente di generare CSR, ma consentono solo una singola SAN. Non possiamo utilizzare una CSR generata altrove perché non abbiamo potuto utilizzare il certificato risultante poiché non c'è modo (che posso trovare) per caricare la chiave sul canvasio delle lamierine.

Il nostro process standard di CA non consente l'aggiunta di SAN che stanno firmando il tempo. Sono disposti a sperimentare, però cerco di trovare una soluzione alla nostra fine, in quanto ciò significa che non dovremo fare affidamento su di loro per un process non standard per noi – nella mia esperienza se hanno bisogno di utilizzare un process non standard la vita sarà infine difficile. Ad esempio quando un membro del personale che conosce il process non standard non è presente a causa di ferie ecc.

Il metodo attuale è quello di connettersi al bladechassis onboard admin tramite il gui web e generare la CSR con una singola CN.

Il gui web consente solo una singola SAN nella CSR.

Poi la firmiamo con la seguente stanza nella openssl config:

[ v3_ca ] subjectAltName = "DNS:bladesystem8,DNS:bladesystem8.services.adelaide.edu.au,DNS:bladesystem8-backup,DNS:bladesystem8-backup.services.adelaide.edu.au" 

Il cert risultante ha le SAN aggiuntive.

2 Solutions collect form web for “Aggiunta di nomi alternativi di soggetti (SAN) a una richiesta di firma del certificato (CSR) esistente”

Se il tuo canvasio non support l'aggiunta di SAN, dovrai distriggersre la chiave dal canvasio e generare la CSR con openssl.

Assicurarsi che req_extensions = v3_req sia req_extensions = v3_req nella sezione [ req ] .

Aggiungere il subjectAltName alla sezione [ v3_req ] .

Generare una nuova CSR.

 openssl req -new -key extracted_c7000.key -out your_new.csr 

Non è ansible modificare una CSR esistente.

Nota importnte: Tutto questo è un po 'speculativo, quindi se sei profondamente nel codice e non è d'accordo con quello che sto dicendo, creda al codice. Non sono un esperto CA, ho solo uno su TV. Detto ciò:

Come una caratteristica delle CSR, sarà difficile. Il passaggio finale per la generazione di una CSR a livello di programmazione consiste nell'affettere tutto quello che hai creato e quindi firmarlo con la chiave privata. Quindi, mentre potresti aggiungere tali attributi al text della CSR, la firma non corrisponderebbe al contenuto, quindi nessuna CA avrebbe firmato.

Nel tuo caso, tuttavia, controlli (o siete alless in contatto con) la CA. Ciò offre due opzioni:

  1. È ansible istruire la CA a blithely ignorare la firma sulla CSR e per emettere un cert comunque.
  2. È ansible disporre di un certificato CA diverso da quello richiesto (ad esempio, aggiungendo attributi).

Di questi, # 1 sembra di gran lunga il più facile. Dovresti rompere la sigillatura evidente a OpenSSL per farlo, ma ha alcune funzioni che dovrebbero rendere piuttosto un po 'più facile. Comincio con asn1parse, che ti mostrerà come rompere la CSR.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.