Risposte:
Fintanto che utilizzi la stessa chiave, dominio (aka nome comune), dettagli di contatto e periodo di validità, dovresti essere in grado di utilizzare lo stesso CSR.
Sebbene sia sincero generare un CSR è un lavoro piuttosto semplice, quindi se devi modificare i dettagli di contatto (su cui molti provider SSL sono severi) non è un grosso problema.
Per il tuo esempio, non penso che valga la pena provare a riutilizzare i CSR. Tuttavia, per un gruppo diversificato di sviluppatori Apple iOS (come ho fatto io) c'è una buona ragione per farlo. Creiamo (in realtà, chiediamo ad Apple di creare) tutti i nostri certificati di firma e rimuoviamo i certificati dalla stessa chiave privata. In questo modo tutti possiamo collaborare facilmente sulle nostre oltre 85 app. Per questo motivo, manteniamo un singolo CSR in giro e utilizziamo sempre lo stesso per tutto il tempo in cui la chiave è valida.
Per quanto ne so, non c'è motivo di generare ripetutamente CSR da una singola chiave privata. Mi piacerebbe essere corretto se sbaglio.
Il vantaggio principale di disporre di certificati a durata limitata è la riduzione del danno in caso di perdita della chiave privata. Qualcuno che possiede la chiave privata può altrimenti impersonare di essere te per sempre se riutilizzi il CSR, perché il riutilizzo del CSR implica anche il riutilizzo della tua chiave privata.
Per favore, non farlo, è meglio automatizzare la generazione sia delle chiavi private che dei CSR e trovare modi convenienti per distribuire le chiavi private in continua evoluzione ai server di build delle applicazioni e ai server push. La maggior parte dei semplici sviluppatori mortali normalmente non dovrebbe mai fare una versione di rilascio / distribuzione per l'app store, quindi non avrà bisogno delle chiavi private.
In teoria si può davvero riutilizzare lo stesso CSR, poiché questo è solo un contenitore per
Questo è tutto ciò che riguarda un certificato (abbreviazione di PublicKey Certificate)
Ma come notato in altre risposte, è buona norma cambiare regolarmente la chiave privata, in modo da implicare un nuovo certificato e quindi un nuovo CSR per ottenerlo.
Puoi facilmente guardare il contenuto di un CSR
per esempio
$ openssl req -new -batch -subj "/CN=My Common Name/OU=My Org Unit/O=My Organisation" -sha256 -newkey rsa:2048 -keyout private.key -nodes -out request.csr
Generating a 2048 bit RSA private key
.............................................................................................+++++
.........+++++
writing new private key to 'private.key'
-----
$ ls
private.key // keep that private, the PublicKey side is easily be generated from this
request.csr // your PublicKey + Subject details
CSR
$ openssl req -in request.csr -text -noout
Certificate Request:
Data:
Version: 1 (0x0)
Subject: CN = My Common Name, OU = My Org Unit, O = My Organisation
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus: ///////// Matches the PrivateKey modulus
00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
03:87
Exponent: 65537 (0x10001) ///////// Matches the PrivateKey publicExponent
Attributes:
a0:00
Signature Algorithm: sha256WithRSAEncryption
a1:44:1f:b2:ec:c0:82:bc:99:da:69:ce:3e:77:9f:46:51:95:
...
3b:2d:84:e3:73:ac:be:c8:da:29:fd:62:90:11:dd:8a:a6:4f:
7b:f8:ac:f1
E PrivateKey
$ openssl rsa -in private.key -text -noout
// all the below are numbers that takes part in Mathematical encryption (search for RSA maths)
RSA Private-Key: (2048 bit, 2 primes)
// The Numbers that can be freely published
modulus:
00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
03:87
publicExponent: 65537 (0x10001)
// The Numbers that must be kept private !
privateExponent:
0a:81:73:d8:30:65:28:90:bc:d7:38:b5:74:d4:aa:
...
b1:9b:30:2e:a2:dd:46:c1:10:0f:b0:da:ac:b6:ea:
01
prime1:
00:e0:28:01:87:95:70:d0:b8:21:07:e0:4f:96:a6:
...
66:28:8f:3d:d7:eb:e6:b4:81
prime2:
00:cb:2e:fe:1b:b6:30:ea:8d:9e:6d:23:83:d8:b6:
...
4d:64:39:5c:9c:18:a0:14:07
exponent1:
22:e2:36:f2:b9:af:f7:db:5f:d0:90:f8:f1:d1:ff:
...
3a:31:a8:87:2c:c0:17:81
exponent2:
5a:8b:3d:77:f1:ef:c8:86:85:a4:13:20:8d:31:a4:
...
a5:ba:1e:37:fd:8d:50:7f
coefficient:
00:d3:d3:b6:81:4b:a9:c2:aa:ff:e1:07:cb:de:ea:
...
5c:e9:3b:d3:f7:67:82:c3:7f