ฉันตั้งค่า SSL บนเซิร์ฟเวอร์ Ubuntu หนึ่งในฟิลด์ที่ขอเป็นส่วนหนึ่งของการตั้งค่า CSR คือ "รหัสผ่านการท้าทาย" นั่นคืออะไร? ค่าเริ่มต้นว่างเปล่า ฉันจำเป็นต้องป้อนรหัสหรือไม่
ฉันตั้งค่า SSL บนเซิร์ฟเวอร์ Ubuntu หนึ่งในฟิลด์ที่ขอเป็นส่วนหนึ่งของการตั้งค่า CSR คือ "รหัสผ่านการท้าทาย" นั่นคืออะไร? ค่าเริ่มต้นว่างเปล่า ฉันจำเป็นต้องป้อนรหัสหรือไม่
คำตอบ:
"รหัสผ่านท้าทาย" ที่ร้องขอเป็นส่วนหนึ่งของการสร้าง CSR แตกต่างจากวลีรหัสผ่านที่ใช้ในการเข้ารหัสคีย์ลับ ( ร้องขอในเวลาที่สร้างคีย์หรือเมื่อคีย์เพลนเท็กซ์ถูกเข้ารหัสในภายหลัง - และขออีกครั้งทุกครั้งที่เปิดใช้งาน SSL บริการที่เริ่มใช้งาน )
นี่คือคีย์ที่ถูกสร้างขึ้นและจุดเริ่มต้นของคีย์ที่สร้างขึ้น:
$ openssl genpkey -algorithm rsa -out foo.key
............++++++
...++++++
$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt
คีย์นี้ไม่มีข้อความรหัสผ่าน ฉันไม่ได้รับพร้อมท์เมื่อสร้างและไม่ได้ป้อน ตอนนี้เรามาสร้างคีย์เข้ารหัส:
$ openssl genpkey -algorithm rsa -des3 -out bar.key
...........................................++++++
.....................................++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
$ head -3 bar.key
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQInfwj1iv3icMCAggA
MBQGCCqGSIb3DQMHBAizMHBklBexiwSCAoDtRKf1WtMiVMH7HraGTIG0rlQS6Xuj
ดังนั้นควรมีความชัดเจนว่ารหัสส่วนตัวที่เข้ารหัส (apache ใดหรือเซิร์ฟเวอร์ที่เปิดใช้งาน SSL อื่น ๆ จะต้องปลดล็อกเมื่อเริ่มทำงาน) และรหัสส่วนตัวแบบธรรมดา (ซึ่งไม่ต้องการการปลดล็อกในเวลาเริ่มบริการ) . ตอนนี้ฉันจะสร้าง CSR ด้วยรหัสผ่านที่ท้าทายจากรหัสที่ไม่ได้เข้ารหัส :
$ openssl req -new -key foo.key
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:asdfasdf
An optional company name []:
-----BEGIN CERTIFICATE REQUEST-----
MIIBmzCCAQQCAQAwQjELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0
eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEAn2M0Abg2jL/+v9J54r+ASAY5XQFmbQJiaBJAaPg/o3dwmw+U
awbzSopPFMXCgSJeczcFV4GkN1eEYq2Cmam3tH6t8mVDh0/UryJSWBsaFm9mh9RF
gIpP0hEkYZTf/0X+X06ukt9S/Id9Z/tVgPsZA3TcNjNhJfVaTm81/4ykq8UCAwEA
AaAZMBcGCSqGSIb3DQEJBzEKDAhhc2RmYXNkZjANBgkqhkiG9w0BAQUFAAOBgQCa
ivuDRBlHOhBjg6wPbH9NvCnvEnxeEAkYi0Sl/Grdo/WCk17e+sv9wgqEW1QSIdbV
XzMeWidurv4AtcATwhfk9tBcYBCTxANkTONzhJG7Yk9OAz8g8Ljo8EEvPf4oHqpw
tBg10DCD2op0lCwL2LBdPO3RG20f/HD6fEXPVxZdOQ==
-----END CERTIFICATE REQUEST-----
และเพื่อแสดงให้เห็นว่ากุญแจนั้นไม่ได้เข้ารหัสอย่างน่าอัศจรรย์:
$ head -3 foo.key
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9jNAG4Noy//r/S
eeK/gEgGOV0BZm0CYmgSQGj4P6N3cJsPlGsG80qKTxTFwoEiXnM3BVeBpDdXhGKt
ดังนั้นฉันพูดอีกครั้งว่า "รหัสผ่านการท้าทาย" ที่ร้องขอในฐานะส่วนหนึ่งของการสร้าง CSR ไม่ใช่สิ่งเดียวกันกับข้อความรหัสผ่านที่ใช้ในการเข้ารหัสคีย์ลับ "รหัสผ่านการท้าทาย" นั้นเป็นความลับที่ไม่ใช้ร่วมกันระหว่างคุณและผู้ออกใบรับรอง SSL (หรือผู้ออกใบรับรองหรือ CA) ที่ฝังอยู่ใน CSR ซึ่งผู้ออกใบรับรองอาจใช้เพื่อรับรองความถูกต้องของคุณ ผู้ออกใบรับรอง SSL บางรายให้ความชัดเจนมากกว่าผู้ออกใบรับรองรายอื่น ดูที่ด้านล่างของหน้านี้เพื่อดูว่าพวกเขาพูดว่าต้องใช้รหัสผ่านการท้าทายอะไร - ไม่ใช่เมื่อคุณรีสตาร์ท apache:
หากคุณเลือกที่จะป้อนและใช้รหัสผ่านที่ท้าทายคุณจะต้องตรวจสอบให้แน่ใจว่าคุณได้บันทึกรหัสผ่านนั้นในที่ปลอดภัย หากคุณต้องการติดตั้งใบรับรองของคุณใหม่ด้วยเหตุผลใดก็ตามคุณจะต้องป้อนรหัสผ่านนั้น