Câu trả lời:
Miễn là bạn sử dụng cùng một khóa, tên miền (còn gọi là tên chung), chi tiết liên hệ và thời gian hiệu lực, bạn sẽ có thể sử dụng cùng một CSR.
Mặc dù thành thật mà nói, tạo CSR là một công việc khá đơn giản, vì vậy nếu bạn cần sửa đổi chi tiết liên hệ (điều mà rất nhiều nhà cung cấp SSL nghiêm ngặt) thì đó không phải là vấn đề lớn.
Đối với trường hợp ví dụ của bạn, tôi không nghĩ nên thử sử dụng lại CSR. Tuy nhiên, đối với một nhóm lớn các nhà phát triển Apple iOS (như tôi có), có một lý do chính đáng để làm điều này. Chúng tôi tạo ra (thực sự, yêu cầu Apple tạo) tất cả các loại giấy ký tên của chúng tôi và đẩy các loại giấy ra khỏi cùng một khóa riêng. Bằng cách đó, tất cả chúng ta có thể cộng tác dễ dàng trên 85 ứng dụng của mình. Vì lý do này, chúng tôi giữ một CSR duy nhất nằm xung quanh và luôn sử dụng cùng một CS miễn là khóa hợp lệ.
Theo tôi biết, không có lý do gì để liên tục tạo CSR từ một khóa riêng. Tôi muốn được sửa chữa nếu tôi sai.
Lợi ích chính của việc có chứng chỉ trong thời gian giới hạn là giảm thiệt hại nếu khóa riêng của bạn bị rò rỉ. Ai đó sở hữu khóa riêng có thể mạo danh bạn mãi mãi nếu bạn sử dụng lại CSR, bởi vì sử dụng lại CSR cũng đồng nghĩa với việc tái sử dụng khóa riêng của bạn.
Xin đừng làm vậy, tốt hơn là tự động hóa việc tạo cả khóa riêng cũng như CSR và tìm cách thuận tiện để phân phối khóa riêng luôn thay đổi cho máy chủ xây dựng ứng dụng và máy chủ đẩy. Hầu hết các nhà phát triển phàm tục thường sẽ không bao giờ cần phải thực hiện phát hành / xây dựng phân phối cho cửa hàng ứng dụng, vì vậy sẽ không cần các khóa riêng.
Về lý thuyết, bạn thực sự có thể tái sử dụng cùng một CSR, vì đây chỉ là một thùng chứa cho
Đây là những gì một chứng chỉ (viết tắt của Chứng chỉ PublicKey) nói về tất cả
Nhưng như đã lưu ý trong các câu trả lời khác, việc thay đổi khóa riêng tư thường xuyên là một điều tốt, do đó, nó bao hàm Chứng chỉ mới và CSR mới để có được nó.
Bạn có thể dễ dàng xem nội dung của CSR
ví dụ
$ 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
Và 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