ฉันสามารถใช้ SSL CSR ซ้ำได้หรือไม่


21

ฉันสร้างใบรับรอง SSL ที่ผ่านการรับรองด้วยตนเองสำหรับการทดสอบเว็บไซต์ใหม่ เวลาได้มาถึงไซต์แล้วและฉันต้องการซื้อใบรับรองจาก GeoTrust ฉันสามารถใช้ CSR เดียวกับที่ฉันสร้างขึ้นสำหรับใบรับรองตนเองหรือฉันต้องสร้างใหม่หรือไม่

รวย

คำตอบ:


19

ตราบใดที่คุณใช้คีย์เดียวกันโดเมน (ชื่อสามัญหรือที่รู้จักกันทั่วไป) รายละเอียดการติดต่อและช่วงเวลาที่มีผลบังคับใช้คุณควรจะสามารถใช้ CSR เดียวกันได้

แม้ว่าการสร้าง CSR นั้นเป็นงานที่เรียบง่าย แต่ถ้าคุณต้องการแก้ไขรายละเอียดการติดต่อ (ซึ่งผู้ให้บริการ SSL จำนวนมากเข้มงวด) ก็ไม่ใช่เรื่องใหญ่


1
ฉันเห็นด้วย. การสร้าง CSR เป็นงานที่น่ารำคาญฉันไม่เห็นว่าทำไมคุณถึงต้องพยายามนำมันกลับมาใช้ใหม่
joeqwerty

5
เมื่อคุณติดตั้ง OpenSSL แล้วคุณสามารถสร้าง CSR ใหม่ได้ในเวลาประมาณ 30 วินาที และถ้าคุณคิดว่ามันจะพาคุณไปอีกนาน - แน่นอนเพราะคุณต้องการฝึกฝน !!!!!
Austin '' Danger '' พลัง

1
ไม่สามารถใช้ได้กับกรณีของ OP แต่ถ้าคุณต้องการใช้การปักหมุดใบรับรองการใช้ CSR เดียวกันนั้นมีประโยชน์มากกว่าการอัปเดตแอปฝั่งไคลเอ็นต์ของคุณ
ดำ

หากคีย์โดเมนและรายละเอียดเหมือนกัน CSR จะเหมือนกัน
graywh

11

สำหรับกรณีตัวอย่างของคุณฉันไม่คิดว่าจะคุ้มค่าที่จะนำ CSR มาใช้ซ้ำ อย่างไรก็ตามสำหรับทีมนักพัฒนา Apple iOS ที่มีความหลากหลาย (เช่นฉัน) มีเหตุผลที่ดีที่จะทำสิ่งนี้ เราสร้าง (จริง ๆ แล้วขอให้ Apple สร้าง) ใบรับรองการเซ็นชื่อทั้งหมดของเราและผลักใบรับรองออกจากคีย์ส่วนตัวเดียวกัน ด้วยวิธีนี้เราทุกคนสามารถทำงานร่วมกันได้อย่างง่ายดายบนแอพ 85+ ของเรา ด้วยเหตุนี้เราจึงจัดทำ CSR เดี่ยว ๆ อยู่เสมอและใช้ CSR เดียวกันเสมอตราบใดที่รหัสนั้นถูกต้อง

เท่าที่ฉันรู้ไม่มีเหตุผลที่จะสร้าง CSR จากคีย์ส่วนตัวเดียวซ้ำ ๆ ฉันชอบที่จะได้รับการแก้ไขถ้าฉันผิด


6
4 ปีแล้วที่ไม่มีการแก้ไข ฉันเดาว่าฉันไม่ผิด
Bruno Bronosky

5

ประโยชน์หลักของการมีใบรับรองระยะเวลาที่ จำกัด คือการลดความเสียหายหากคีย์ส่วนตัวของคุณรั่วไหล ใครบางคนที่มีรหัสส่วนตัวสามารถเลียนแบบคุณได้ตลอดไปหากคุณนำ CSR กลับมาใช้ใหม่เพราะการใช้ CSR ซ้ำหมายถึงการนำคีย์ส่วนตัวของคุณกลับมาใช้เช่นกัน

โปรดอย่าทำเช่นนั้นจะเป็นการดีกว่าที่จะสร้างทั้งคีย์ส่วนตัวรวมทั้ง CSR และค้นหาวิธีที่สะดวกในการแจกจ่ายไพรเวตคีย์ที่เปลี่ยนแปลงตลอดเวลาไปยังแอพพลิเคชันสร้างเซิร์ฟเวอร์และเซิร์ฟเวอร์พุช โดยทั่วไปแล้วนักพัฒนาที่ไม่ใช้งานส่วนใหญ่จะไม่จำเป็นต้องทำการวางจำหน่าย / ต่อเติมสร้างสำหรับแอพสโตร์ แต่อย่างใดดังนั้นจึงไม่จำเป็นต้องใช้คีย์ส่วนตัว


1
ในขณะที่มันเป็นความจริงที่ว่า "การใช้ CSR ซ้ำหมายถึงการนำคีย์ส่วนตัวของคุณกลับมาใช้ใหม่" แต่ก็ไม่ได้หมายความว่า "การแอบอ้างเป็นคุณตลอดไปหากคุณนำ CSR กลับมาใช้" หากคุณตัดสินใจที่จะใช้รหัสสำหรับ N เดือนมันก็ดีที่จะใช้ CSR เดียวกันสำหรับ N เดือนเหล่านั้น
Bruno Bronosky

2
ใช่คุณพูดถูกบรูโน่ ฉันคิดว่าผู้คนที่นำ CSR กลับมาใช้ซ้ำนั้นไม่ได้ทำอย่างนั้นดังนั้นจึงฝึกต่อเนื่อง "ตลอดไป" อย่างไรก็ตามอาจมีบางคนที่ตระหนักถึงปัญหาและทำตามการวางแผนอย่างรอบคอบในระยะเวลาที่ จำกัด
Stefan L

1

ในทางทฤษฎีคุณสามารถนำ CSR มาใช้ซ้ำได้เหมือนเดิมเพราะนี่เป็นเพียงแค่คอนเทนเนอร์สำหรับ

  • คีย์สาธารณะของคุณ (เฉพาะตัวเลขที่ใช้สำหรับการเข้ารหัส RSA (คณิตศาสตร์เฉพาะ))
  • รายละเอียด "หัวเรื่อง" ของคุณ (คุณคือใครโดเมนอะไร ฯลฯ ... ) ข้อความที่ใช้ระบุเจ้าของรหัสสาธารณะนั้น

นี่คือสิ่งที่ใบรับรอง (ย่อมาจาก PublicKey ใบรับรอง) เป็นเรื่องเกี่ยวกับหลังจากทั้งหมด

แต่ดังที่ระบุไว้ในคำตอบอื่น ๆ มันเป็นวิธีการที่ดีในการเปลี่ยนคีย์ส่วนตัวอย่างสม่ำเสมอเพื่อให้มีความหมายถึงใบรับรองใหม่และ CSR ใหม่ ๆ เพื่อให้ได้

คุณสามารถดูเนื้อหาของ CSR ได้อย่างง่ายดาย

เช่น

$ 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

ความรับผิดชอบต่อสังคม

$ 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

และ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.