Score:3

ติดตั้งใบรับรอง ssl ของ godaddy บน nginx, pem, bundle, crt

ธง cn

คำแนะนำที่มีอยู่และโพสต์ในฟอรัมยังไม่ชัดเจนเล็กน้อย วิธีจัดการกับไฟล์สามไฟล์ที่คุณจะได้รับจาก Godaddy เมื่อซื้อใบรับรอง SSL จากพวกเขา Godaddy ไม่ได้อธิบายอย่างตรงไปตรงมา เมื่อมองย้อนกลับไป ตอนนี้เมื่อรู้วิธีการทำแล้ว บางคนอาจคิดว่าไม่ฉลาดเลยที่จะไม่ลงรายละเอียดในคำแนะนำที่แนบมากับการซื้อ เพราะมันไม่ใช่เรื่องเล็กน้อยที่จะทำให้มันใช้งานได้

เมื่อซื้อใบรับรอง SSL มาตรฐาน (Starfield SHA-2) หรือ (Godaddy SHA-2) ที่ GoDaddy คุณระบุประเภทเซิร์ฟเวอร์ที่คุณมีและดาวน์โหลดแพ็คเกจ zip ในกระบวนการ คุณจะต้องดาวน์โหลดไฟล์ txt สองไฟล์

สำหรับ Nginx คุณต้องระบุประเภทเซิร์ฟเวอร์ 'อื่นๆ' และไฟล์ zip ของคุณมี 3 ไฟล์ (1-3) ในกระบวนการนี้ ยังมีการสร้างไฟล์อีกสองไฟล์ (4-5) บันทึกแยกกัน:

  1. 3423l4kj23l4j.crt
  2. 3423l4kj23l4j.pem
  3. sf_bundle-g2-g1.crt
  4. สร้าง-private-key.txt
  5. สร้าง-csr.txt

เมื่อเปิดในแผ่นจดบันทึก 1 และ 2 ด้านบนจะเหมือนกัน

'-----เริ่มใบรับรอง-----
MM123XXXXXX
XXXXXXXO8กม
-----จบใบรับรอง-----'

sf_bundle-g2-g1.crt ด้านบนไม่มี 1 หรือ 2 แต่มีสามรายการแยกกัน

'-----เริ่มใบรับรอง-----
XXXX1
XXXX2
-----จบใบรับรอง-----
-----เริ่มต้นใบรับรอง-----
XXXX3
XXXX4
-----จบใบรับรอง-----
-----เริ่มต้นใบรับรอง-----
XXXX5
XXXX6
-----จบใบรับรอง-----'

สร้าง-private-key.txt เป็นเอกลักษณ์

'-----เริ่มต้นรหัสส่วนตัว-----
XXXX7
XXXX8
----- สิ้นสุดรหัสส่วนตัว ----- '

และในที่สุดก็, สร้าง-csr.txtเป็นเอกลักษณ์อีกด้วย

'-----เริ่มต้นคำขอใบรับรอง-----
XXXX9
XXXX0
----- สิ้นสุดคำขอใบรับรอง ----- '

ใน Nginx:

  1. ฉันได้สร้างโฟลเดอร์ /etc/nginx/ssl
  2. ฉันแก้ไข /etc/nginx/sites-enabled/default.conf ดังต่อไปนี้

;

เซิร์ฟเวอร์ {
        ฟัง 80 default_server ;
        ฟัง [::]:80 default_server ;

ฉันได้เปลี่ยนสิ่งนี้เป็น:

เซิร์ฟเวอร์ {
        ฟัง 443 ssl ;
        ฟัง [::]:443 ssl ;
        server_name example.com;

        ssl_certificate /etc/nginx/ssl/ ?????????.crt;
        ssl_certificate_key /etc/nginx/ssl/ ???????.key;

เนื่องจากฉันไม่ชัดเจนว่าอะไรคืออะไร และ pem และบันเดิลคืออะไร ฉันจึงอยากถามว่าไฟล์ที่คลายซิปไปอยู่ที่ใด:

  • ssl_certificate = crt, pem, บันเดิล, gen_crt?
  • ssl_certificate_key = pem หรือรหัสส่วนตัว?

อัปเดต ฉันทำตามที่ @ nikita-kipriyanov แนะนำ มันได้ผล

  • รวม/เชื่อมโดย: 3423l4kj23l4j.pem sf_bundle-g2-g1.crt > fullchain.pem นี้จะกลายเป็น ssl_certificate ไฟล์
  • เปลี่ยนชื่อเป็น สร้าง-private-key.txt เป็น privkey.pem ไฟล์ จากนั้นเปลี่ยนการเข้ารหัสไฟล์ของมัน: sudo iconv -c -f UTF8 -t ASCII privkey.pem >> privkey.pem นี้จะกลายเป็น ssl_certificate_key ไฟล์
Nikita Kipriyanov avatar
za flag
ไฟล์ทั้งหมดของคุณอยู่ในรูปแบบ PEM ดูเหมือนว่า *คุณต้องการ* เพื่อเชื่อมใบรับรองและบันเดิลของคุณเข้าด้วยกันตามคำตอบด้านล่าง และใช้สำหรับ `ssl_certificate` ใช้ไฟล์คีย์ส่วนตัวที่สร้างขึ้นสำหรับ `ssl_certificate_key` ฉันคิดว่ามันค่อนข้างชัดเจนจากคำตอบ แต่การแก้ไขของคุณทำให้สิ่งนี้ชัดเจนยิ่งขึ้น
dave_thompson_085 avatar
jp flag
คุณแน่ใจหรือว่านั่นคือ `sf_bundle-g1-g1` มันไม่สมเหตุสมผลเลยที่จะเชื่อมโยงรูทกับตัวมันเอง และ [พื้นที่เก็บข้อมูลของ GoDaddy](https://certs.godaddy.com/repository) มี `sf_bundle-g2-g1` และ `sf_bundle-g2` แต่ไม่มี `sf_bundle- g1-g1`.
Jaco avatar
cn flag
จุดที่ดี @dave_thompson_085 พิมพ์ผิด แก้ไขแล้ว
Score:3
ธง za

ขึ้นอยู่กับสิ่งที่อยู่ภายในมัด ฉันแน่ใจว่ามีเส้นทางการรับรองจนถึง CA ที่เชื่อถือได้ คำถามคือ: รวมใบรับรองเซิร์ฟเวอร์ปลายทางด้วย (เป็น "เชนเต็มรูปแบบ" ในแง่ของ Let's Encrypt) หรือไม่ ("เชน") นอกจากนี้ ไฟล์ใดมีคีย์ส่วนตัว

คุณสามารถตรวจสอบด้วยตนเองได้เพียงแค่ดูด้วยโปรแกรมดูข้อความ (แผ่นจดบันทึก ฯลฯ) และเปรียบเทียบเนื้อหา เนื่องจากบันเดิลในรูปแบบ PEM ไม่มีอะไรมากไปกว่าใบรับรองทั้งหมดในรูปแบบ Base64 ที่เชื่อมต่อกันโดยเริ่มจากเซิร์ฟเวอร์ จากนั้นจึงเป็นผู้ออกใบรับรอง CA และอื่น ๆ

คุณยังสามารถตัดใบรับรองใด ๆ ที่ขึ้นต้นด้วย -----เริ่มต้นใบรับรอง----- จนถึง -----จบใบรับรอง-----, รวมทั้ง บรรทัดพิเศษทั้งสองนี้ลงในไฟล์เฉพาะและถอดรหัสด้วย opensl x509 -in file.pem -noout -ข้อความ. ด้วยวิธีนี้ คุณจะทราบได้อย่างชัดเจนว่าใบรับรองใดอยู่ในชุดข้อมูล

หากไฟล์รูปแบบ PEM มีบางอย่างเช่น ----- เริ่มต้นรหัสส่วนตัว ----, ไม่แบ่งปันกับใคร เก็บเป็นความลับ!

ไฟล์ทั้งหมดที่มีเฉพาะใบรับรองเท่านั้นที่มี -----เริ่มต้นใบรับรอง----- ในนั้นเป็นสาธารณะ คุณสามารถแสดงใบรับรองเหล่านี้แก่ทุกคนได้อย่างปลอดภัย (และอันที่จริง คุณจะทำได้ เนื่องจากเซิร์ฟเวอร์จะส่งใบรับรองเหล่านั้นไปยังไคลเอ็นต์ในระหว่างขั้นตอนการเริ่มต้นเซสชัน SSL)


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

อย่างไรก็ตาม หากไม่มีห่วงโซ่แบบเต็ม คุณต้องเชื่อมมันเอง (ดูเหมือนว่าจะเป็นกรณีของคุณ):

cat server.crt bundle.pem > fullchain.pem

ตอนนี้เพียงแค่ส่งผ่านไปยัง Nginx:

ssl_certificate fullchain.pem;
ssl_certificate_key privkey.pem;

ดู คู่มือการใช้งาน Nginx สำหรับรายละเอียด

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา