Tôi có thể sử dụng lại SSL CSR không?


21

Tôi đã tạo chứng chỉ SSL tự chứng nhận để kiểm tra một trang web mới. Đã đến lúc trang web hoạt động và bây giờ tôi muốn mua một chứng chỉ từ GeoTrust. Tôi có thể sử dụng cùng một CSR mà tôi đã tạo cho chứng chỉ tự, hoặc tôi có cần tạo một CSR mới không?

Giàu có

Câu trả lời:


19

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.


1
Tôi đồng ý. Tạo CSR là một nhiệm vụ tầm thường Tôi không hiểu tại sao bạn thậm chí còn cố gắng sử dụng lại CSR.
joeqwerty

5
Khi bạn đã cài đặt OpenSSL, bạn có thể tạo CSR mới trong khoảng 30 giây. Và nếu bạn nghĩ rằng nó sẽ khiến bạn mất nhiều thời gian hơn - thì chắc chắn hãy làm điều đó bởi vì bạn cần thực hành !!!!!
Austin '' Nguy hiểm '' Powers

1
Không áp dụng cho trường hợp của OP, nhưng nếu bạn đang muốn sử dụng ghim chứng chỉ, việc sử dụng cùng một CSR sẽ thực tế hơn là cập nhật các ứng dụng phía máy khách của bạn.
đen

Nếu khóa, tên miền và chi tiết giống nhau, CSR sẽ giống hệt nhau.
Graywh

11

Đố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.


6
Đã 4 năm không sửa. Tôi đoán tôi không sai.
Bruno Bronosky

5

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.


1
Mặc dù đúng là "sử dụng lại CSR cũng bao hàm việc sử dụng lại khóa riêng của bạn", điều đó không có nghĩa là "mạo danh bạn mãi mãi nếu bạn sử dụng lại CSR". Nếu bạn quyết định sử dụng khóa trong N tháng, thì sử dụng cùng một CSR cho N tháng đó là tốt.
Bruno Bronosky

2
Vâng, bạn đúng Bruno. Tôi cho rằng những người tái sử dụng CSR đã làm như vậy vì sự thiếu hiểu biết và do đó tiếp tục thực hành "mãi mãi", tuy nhiên có thể có một vài người nhận thức được các vấn đề và làm như vậy dựa trên kế hoạch cẩn thận trong một thời gian hạn chế.
Stefan L

1

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

  • Khóa công khai của bạn (chỉ các số được sử dụng cho mã hóa RSA (toán cụ thể))
  • chi tiết "Chủ đề" của bạn (bạn là ai, tên miền nào, v.v ...) Văn bản được sử dụng để Xác định chủ sở hữu của Khóa công khai đó

Đâ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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.