Odpowiedzi:
Tak długo, jak używasz tego samego klucza, domeny (zwanej też nazwą zwykłą), danych kontaktowych i okresu ważności, powinieneś być w stanie korzystać z tego samego CSR.
Szczerze mówiąc, generowanie CSR jest dość prostym zadaniem, więc jeśli chcesz zmienić dane kontaktowe (które jest ściśle przestrzegane przez wielu dostawców SSL), nie jest to wielka sprawa.
W twoim przypadku nie sądzę, że warto próbować ponownie wykorzystywać CSR. Jednak dla dużego, różnorodnego zespołu programistów Apple iOS (tak jak ja) istnieje dobry powód, aby to zrobić. Tworzymy (właściwie pytamy Apple o utworzenie) wszystkich naszych certyfikatów do podpisywania i wypychamy je z tego samego klucza prywatnego. W ten sposób wszyscy możemy łatwo współpracować w naszych ponad 85 aplikacjach. Z tego powodu utrzymujemy pojedynczy CSR i zawsze używamy tego samego, dopóki klucz jest ważny.
O ile mi wiadomo, nie ma powodu do wielokrotnego generowania CSR z jednego klucza prywatnego. Chciałbym być poprawiony, jeśli się mylę.
Główną zaletą posiadania certyfikatów o ograniczonym okresie ważności jest zmniejszenie szkód w przypadku wycieku klucza prywatnego. Ktoś posiadający klucz prywatny może w inny sposób podszywać się pod Ciebie, jeśli ponownie wykorzystasz CSR, ponieważ ponowne użycie CSR oznacza również ponowne użycie twojego klucza prywatnego.
Nie rób tego, lepiej zautomatyzować generowanie zarówno kluczy prywatnych, jak i CSR i znaleźć dogodne sposoby dystrybuowania ciągle zmieniających się kluczy prywatnych do serwerów budowania aplikacji i serwerów push. Większość zwykłych śmiertelnych programistów normalnie nigdy nie musiałaby tworzyć kompilacji wydania / dystrybucji dla sklepu z aplikacjami, więc nie potrzebuje kluczy prywatnych.
Teoretycznie możesz ponownie wykorzystać ten sam CSR, ponieważ jest to tylko kontener
Właśnie o to chodzi w certyfikacie (skrót od PublicKey Certificate)
Ale jak zauważono w innych odpowiedziach, dobrą praktyką jest regularna zmiana klucza prywatnego, co oznacza nowy certyfikat, a więc nowy CSR, aby go uzyskać.
Możesz łatwo przejrzeć treść CSR
na przykład
$ 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
I 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