"ใบรับรองคีย์สาธารณะและคีย์ส่วนตัวไม่ตรงกัน" เมื่อใช้ใบรับรองที่ออกโดย Godaddy [ปิด]


86

ฉันกำลังพยายามติดตั้งใบรับรอง SSL ของ GoDaddy บนตัวโหลดบาลานเซอร์ใหม่ที่ฉันกำลังตั้งค่าบน Amazon AWS เดิมทีฉันสร้างใบรับรองที่ Godaddy โดยใช้โปรแกรม keytool สำหรับการติดตั้งโดยตรงบนเซิร์ฟเวอร์ Glassfish 3.1 (Amazon linux ami) ฉันไม่มีปัญหาในการตั้งค่านั้นโดยตรงบนเซิร์ฟเวอร์ ตอนนี้ฉันต้องย้ายใบรับรองจากเว็บเซิร์ฟเวอร์ไปยังตัวโหลดบาลานเซอร์ใหม่ Amazon กำหนดให้คีย์ส่วนตัวและใบรับรองอยู่ในรูปแบบ PEM ดังนั้นฉันจึงใช้เครื่องมือ "rekey" ที่ GoDaddy เพื่อสร้างใบรับรองใหม่ เมื่อฉันโหลดสิ่งเหล่านี้ในหน้าจอการตั้งค่าตัวจัดสรรภาระงานบน AWS Mgmt Console ฉันได้รับข้อความแสดงข้อผิดพลาด: "ใบรับรองคีย์สาธารณะและคีย์ส่วนตัวไม่ตรงกัน"

นี่คือวิธีการสร้างคีย์:

$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr

จากนั้นฉันจะส่งไฟล์. csr ไปยัง GoDaddy ในระหว่างกระบวนการ "rekey" เมื่อรีคีย์เสร็จสมบูรณ์ฉันจะดาวน์โหลดใบรับรองที่สร้างขึ้นใหม่ 2 รายการ (apps.mydomain.com.crt & gd_bundle.crt) ฉันดาวน์โหลดโดยเลือก (Apache) เป็นประเภทของเซิร์ฟเวอร์ (ฉันได้ลองใช้ "อื่น ๆ " และ "Cpanel" ด้วย แต่ดูเหมือนทั้งหมดจะเหมือนกัน)

ณ จุดนี้ฉันลบการเข้ารหัสออกจากไฟล์ private.key โดยใช้คำสั่งต่อไปนี้:

$ openssl rsa -in private.key -out private.pem

ณ จุดนี้ฉันกลับไปที่คอนโซล AWS Mgmt สร้างตัวโหลดบาลานเซอร์เพิ่มการเปลี่ยนเส้นทางเซิร์ฟเวอร์ที่ปลอดภัยและใส่เนื้อหาของไฟล์ต่อไปนี้ในฟิลด์ที่เกี่ยวข้องบนหน้าจอที่ขอให้ตั้งค่าใบรับรอง ssl:

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain

เมื่อฉันคลิกปุ่ม "ดำเนินการต่อ" ฉันได้รับข้อผิดพลาด "ข้อผิดพลาด: ใบรับรองคีย์สาธารณะและคีย์ส่วนตัวไม่ตรงกัน"

- มีวิธีทดสอบว่าได้รับข้อความแสดงข้อผิดพลาดจาก Amazon หรือไม่ ดูเหมือนจะแปลกสำหรับฉันที่คีย์จะไม่ตรงกันเมื่อฉันทำตามคำแนะนำของ GoDaddy อย่างใกล้ชิด

ฉันได้ลองสร้างไฟล์ private.key โดยไม่มีการเข้ารหัส RSA ก่อนที่จะสร้าง. csr และดูเหมือนจะไม่สร้างความแตกต่างใด ๆ

ฉันยังสมมติว่าไฟล์. crt ที่ฉันดาวน์โหลดจาก GoDaddy อยู่ในรูปแบบ. PEM แต่ฉันไม่แน่ใจว่าจะตรวจสอบได้อย่างไร

ความคิดใด ๆ ?


1
Stack Overflow เป็นไซต์สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมและการพัฒนา คำถามนี้ดูเหมือนจะไม่ตรงประเด็นเนื่องจากไม่เกี่ยวกับการเขียนโปรแกรมหรือการพัฒนา ดูหัวข้อที่ฉันสามารถถามได้ที่นี่ในศูนย์ช่วยเหลือ บางทีSuper Userอาจเป็นสถานที่ที่ดีกว่าในการถาม ดูด้วยที่ฉันจะโพสต์คำถามเกี่ยวกับ Dev Ops ได้ที่ไหน .
jww

โพสต์นี้มีอายุเกิน 3 ปีแล้วทำไมต้องย้ายตอนนี้?
Felby

1
เฟลบี้ - คนมักพูดว่า "... แต่ดูโพสต์นี้และโพสต์นั้น" ดังนั้นจึงไม่เพียงพอที่จะทำให้โพสต์ใหม่เป็นระเบียบ - อย่างน้อยเราก็ต้องได้รับข้อความในโพสต์เก่าด้วย และสำหรับสิ่งที่คุ้มค่าฉันไม่คิดว่ามันเป็นคำถามที่ไม่ดี มันเป็นเพียงเล็กน้อยนอกหัวข้อสำหรับ Stack Overflow
jww

@ เฟลบี้คุณควรพิจารณาคำตอบนี้เพื่อการยอมรับ เป็นสิ่งที่นักพัฒนาส่วนใหญ่มองหาเมื่อเกิดปัญหานี้กับ AWS
Noel Baron

คำตอบ:


61

สำหรับฉันมันเป็นสองขั้นตอนง่ายๆ:

  1. แปลงคีย์ส่วนตัวเป็น PEM:

    openssl rsa -in yourdomain.key -outform PEM

  2. แปลงใบรับรองและชุดใบรับรองเป็น PEM :

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt


1
คำตอบนี้ช่วยฉันได้มาก ขอบคุณโจนาธาน สำหรับบันทึก yourdomain.crt คือคีย์สาธารณะซึ่งเป็นใบรับรองที่คุณได้รับจากผู้ให้บริการของคุณ (อาจเป็น. cer ด้วย)
user_v

ฉันได้รับข้อผิดพลาดWARNING: can't open config file: /etc/pki/tls/openssl.cnf
เรื่อย ๆ

2
@tq - คำสั่ง OpenSSL บางคำสั่งก็มี-configตัวเลือกเช่นกัน ใช้เพื่อระบุพา ธ ไปยังไฟล์กำหนดค่าที่คุณใช้
jww

@felby ควรทำเครื่องหมายอันนี้เป็นคำตอบที่ยอมรับ นี่เป็นคำตอบเดียวที่ไม่สร้างปัญหาความน่าเชื่อถือ SSL กับอุปกรณ์ iOS
Noel Baron

คำตอบนี้มีประโยชน์มากสำหรับ Wildcard SSL คุณต้องแปลงทั้งไฟล์ domain.crt และ gd_bundle.crt
Ducle

40

สำหรับบันทึกและใครก็ตามที่พยายามคิดออก:

yourdomain.key -> คำสั่งเทอร์มินัล: sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem -> คีย์ส่วนตัว

yourdomain.crt -> คีย์สาธารณะ

gd_bundle.crt -> ห่วงโซ่ใบรับรอง

แล้วคุณจะไป :)


2
โอ้พระเจ้าฉันเสียเวลาไปหลายชั่วโมงด้วยปัญหาคุณช่วยฉันได้! ฉันซื้อใบรับรอง RapidSSL: เคล็ดลับคือ 1) แปลงคีย์ส่วนตัวตามที่คุณแนะนำที่นี่และ 2) ย้อนกลับลำดับของใบรับรองในห่วงโซ่ใบรับรองที่ RapidSSL ให้มา ขอบคุณ!
MiniQuark

ยังคงขอรหัสผ่านจากฉัน แต่ใบรับรอง fastssl ของฉันถูกสร้างขึ้นโดยไม่มีหนึ่ง
tq

คำสั่ง sudo จะถามรหัสผ่านผู้ดูแลระบบเว้นแต่ว่าบัญชีของคุณจะถูกตั้งค่าให้ไม่ต้องใช้รหัสผ่านด้วยวิธีการต่างๆ รหัสผ่านที่คุณอ้างอิงด้วยหรือเปล่า
Chris J

หากต้องการเพิ่มบางสิ่งที่ผู้ที่ต้องการอาจพบเราได้รับใบรับรอง Host Gator จากไคลเอนต์และดูเหมือนว่าจะตั้งค่าได้ค่อนข้างดี - ไม่มีการแปลง pem และชุด CA ได้เชื่อมต่อเข้าด้วยกันแล้ว อย่างไรก็ตามจะไม่เข้าไปใน Amazon มันเป็นสิ่งเดียวกันกับลำดับของใบรับรองในกลุ่ม ด้วยการกลับคำสั่งมันก็เข้าและทำงาน
CargoMeister

23

ดูเหมือนว่าปัญหานี้เป็นวิธีที่ฉันคัดลอกเนื้อหาของคีย์และรับรองลงในคอนโซล AWS Management ฉันใช้เดสก์ท็อป Ubuntu ที่ทำงานใน Virtual Box บนเดสก์ท็อป Windows 7 คัดลอกและวางค่าจากหน้าจอ gedit ลงในเบราว์เซอร์ที่ทำงานบนกล่อง Windows เมื่อฉันเปิดไฟล์คีย์และใบรับรองในช่องเดียวกับเว็บเบราว์เซอร์ (ในกรณีนี้ของ Windows) ใบรับรองก็ผ่านไปด้วยดี ฉันเดาว่าบางส่วนของไฟล์ไม่ได้ทำอย่างถูกต้องเมื่อใช้คลิปบอร์ดที่ใช้ร่วมกันระหว่างไคลเอนต์ Virtual Box และโฮสต์ ปิดคดี.


คุณยอมรับคำตอบของคุณเพื่อให้คนอื่นรู้ได้หรือไม่ว่าสิ่งนี้ได้รับการแก้ไขแล้ว
Phil Sturgeon

2
แปลกฉันคิดว่าฉันยอมรับเรื่องนั้นมานานแล้ว ...
Felby

7

เราพบทางเลือกอื่นสำหรับปัญหานี้ เรามีอาการเดียวกันกับข้อผิดพลาดเดียวกัน

จากนั้นเราลองป้อนรหัส pem อีกครั้ง แต่คราวนี้เราต้องกด Enter 1 ครั้งและตรวจสอบให้แน่ใจว่าเคอร์เซอร์อยู่ในบรรทัดว่างที่ท้ายแต่ละหน้าต่าง จากนั้นเราบันทึกไว้ มันทำงาน

วิธีนี้ช่วยแก้ปัญหาของเราได้ดังนั้นจึงอาจแก้ปัญหาให้คนอื่นได้


1

Gotcha ตัวน้อยหนึ่งตัว ฉันใช้กล่อง Windows (Win 7 Pro) และเมื่อฉันใช้พอร์ต Windows ของ OpenSSL ไฟล์ที่ส่งออกจะมีอักขระสิ้นสุดบรรทัด (LF) สไตล์ Unix

ฉันต้องแปลงไฟล์เป็นสไตล์ Windows (CRLF) เพื่ออัปโหลดคีย์ส่วนตัว


0

ฉันสามารถแนะนำวิธีแก้ปัญหาทางเลือกและข้อมูลให้กับคุณได้ โดยทั่วไปใบรับรองทั้งหมดเป็นรูปแบบไฟล์ PEM คุณสามารถเปิดแผ่นจดบันทึกหรือโปรแกรมแก้ไขข้อความและลากไฟล์ที่คุณได้รับในรูปแบบไฟล์. crt ซึ่งโดยปกติเรียกว่าไฟล์. PEM หากใบรับรองโหลดใน keytool ของคุณคุณสามารถส่งออกใบรับรองเป็นไฟล์ pfx จาก keytool จากนั้นคุณสามารถแยกไฟล์ pfx ออกจากคีย์ส่วนตัวจากไฟล์ pfx เนื่องจากไฟล์ pfx เป็นการรวมใบรับรองและคีย์ส่วนตัวของคุณดังนั้นคุณจึงสามารถแยกไฟล์คีย์ส่วนตัวและใช้กับ amazon aws ของคุณได้

ฉันสงสัยว่าอาจมีวิธีอื่นในการติดตั้งใบรับรอง คุณสามารถติดต่อผู้ออกใบรับรองได้หรือไม่และมีวิธีใดในการขอใบรับรองของคุณเพื่อออกใหม่

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