ปัญหาในการติดตั้งใบรับรอง SSL บน nginx ด้วยคีย์กลาง


11

ฉันกำลังพยายามติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Ubuntu ของฉัน ฉันซื้อใบรับรองจาก CA ของฉันและได้ดาวน์โหลดใบรับรองเองและใบรับรองระดับกลาง ดังนั้น:

ใบรับรองของฉัน: mydomain.crt
ใบรับรองระดับกลาง: GandiStandardSSLCA.pem

ฉันยังมี (ทำโดยใช้ openssl)

รหัสส่วนตัวของฉัน (?): mydomain.key
และคำขอลงนาม: mydomain.csr

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

cat mydomain.crt GandiStandardSSLCA.pem > mydomain-bundle.crt

ฉันจะเพิ่มสิ่งต่อไปนี้ในการกำหนดค่าของ vhost

listen   443 ssl;
ssl_certificate       /etc/nginx/ssl/mydomain-bundle.crt;
ssl_certificate_key   /etc/nginx/ssl/mydomain.key;

แต่เมื่อฉันไปรีสตาร์ท nginx ฉันได้รับข้อผิดพลาดนี้:

* การรีสตาร์ท nginx
* การหยุด nginx nginx [OK]
nginx: [ฉุกเฉิน] SSL_CTX_use_PrivateKey_file: "/ etc / nginx / ssl / mydomain.key") ล้มเหลว (SSL: ข้อผิดพลาด: 0B080074: x509 รูทีนใบรับรอง การกำหนดค่าไฟล์ /etc/nginx/nginx.conf การทดสอบล้มเหลว

ความคิดใด ๆ ว่าทำไมและวิธีการแก้ปัญหา?


สิ่งที่ "openssl ตรวจสอบ - ที่เชื่อถือได้ ca-bundle mydomain-bundle.crt" พูด?
Danila Ladner

คือca-bundleอะไร
harryg

คำตอบ:


17

รายการคีย์ของคุณใช้ได้หรือไม่:

openssl rsa -in /etc/nginx/ssl/mydomain.key

ทำโมดูลัสของคีย์และการจับคู่ใบรับรอง:

openssl x509  -in mydomain.crt -modulus 

openssl rsa  -in qa.server.key  -modulus

ตัวเลขเหล่านี้จะต้องตรงกัน


ใช่รายการคีย์ตกลงและ modulae ตรงกัน ฉันสามารถทำรายการในรูตเท่านั้น มันอาจเป็นปัญหาความเป็นเจ้าของ
30914 hryryg

สมมติว่าqa.server.keyเป็นกุญแจส่วนตัวของฉัน
harryg

โปรดทราบว่าลำดับการต่อใบรับรอง (SLL cert และ Intermediate) นั้นสำคัญมาก @davey คำตอบช่วยให้ฉันทราบว่าฉันมี crt รวมผิด
เจอโรม

ยอดเยี่ยม ฉันใช้ไฟล์ผิดสำหรับ ssl_certificate คำสั่ง modulas ช่วยให้ฉันทราบว่าเป็นปัญหา Genius!
Ralph

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