สามารถต่ออายุใบรับรอง SSL ที่ลงชื่อด้วยตนเองได้หรือไม่ อย่างไร?


18

ฉันค่อนข้างใหม่สำหรับใบรับรอง SSL และต้องการทราบว่าใบรับรองแบบลงนามด้วยตนเองที่ฉันใช้สำหรับ HTTPS สามารถต่ออายุได้เพื่อขยายวันหมดอายุโดยไม่มีลูกค้าทั้งหมดของไซต์ที่ต้องผ่านกระบวนการ "อนุญาตข้อยกเว้น" ที่พวกเขามี ทำเมื่อพวกเขาเข้าเยี่ยมชมเว็บไซต์เป็นครั้งแรกหรือเมื่อออกใบรับรองแบบลงนามด้วยตนเองใหม่ที่สร้างขึ้นตั้งแต่ต้น

ฉันพบบทช่วยสอนต่อไปนี้ซึ่งแสดงวิธีการต่ออายุใบรับรองที่ลงชื่อด้วยตนเองโดยใช้opensslแต่ฉันไม่สามารถใช้งานได้เช่นที่เบราว์เซอร์ของฉันยอมรับอย่างเงียบ ๆ โดยไม่แสดงหน้าจอเตือน "ไซต์ที่ไม่น่าเชื่อถือ":

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    Kayon.Toga@togaware.com
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

การตั้งค่าของฉันนั้นค่อนข้างมากตามที่อธิบายไว้ในคำตอบนี้และฉันกำลังใช้ไฟล์ CRT และ KEY (จากบทช่วยสอนนี้ ) แทนไฟล์ PEM ดังนั้นฉันอาจทำให้บางสิ่งบางอย่างยุ่งกับการพยายามนำไปใช้กับเคสของฉัน

จากนั้นอีกครั้งฉันพบรายการฟอรัมมากมายที่บอกว่าเป็นไปไม่ได้เลยที่จะต่ออายุใบรับรองที่ลงชื่อด้วยตนเองและฉันต้องสร้างรายการใหม่ตั้งแต่เริ่มต้น

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ... หรือคำถามนี้จะเหมาะกับ/server//หรือ/superuser//หรือไม่


7
แทนที่จะ downvoting คำถามนี้โปรดให้คำแนะนำเฉพาะเกี่ยวกับสิ่งที่ควรปรับปรุง
FriendFX

คำตอบ:


23

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

คุณสามารถจินตนาการว่าการต่ออายุเป็นเรื่องครอบครัว: เมื่อใบรับรอง "ต่ออายุ" จริง ๆ แล้วจะถูกแทนที่ด้วยพี่น้องที่อายุน้อยกว่า ลูกค้ายอมรับใบรับรองใหม่อย่างเงียบ ๆ เพราะมีการแชร์บรรพบุรุษเดียวกันกับใบรับรองก่อนหน้า ใบรับรองที่ลงนามเองเป็นเด็กกำพร้าที่แท้จริง: พวกเขาไม่มีบรรพบุรุษ ดังนั้นไม่มีพี่น้องและไม่มีเกียร์อัตโนมัติ

(นอกเหนือจากสิ่งตระกูลนี้การต่ออายุคือการสร้างใบรับรองใหม่ใบรับรองไม่สามารถเปลี่ยนแปลงได้ "ต่ออายุ" เป็นวิธีคิดเกี่ยวกับความสัมพันธ์ระหว่างใบรับรองเก่ากับใบรับรองใหม่)

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


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


ขอบคุณสำหรับคำตอบมากมาย! ฉันสงสัยว่าหมายถึงอะไรเกี่ยวกับการกวดวิชาที่ฉันเชื่อมโยง นั่นเป็นใบรับรองCA ที่ลงนามด้วยตนเองเท่านั้นหรือไม่ ฉันเดาว่าฉันแค่หวัง (และคิดว่าหลังจากอ่านบทช่วยสอน) มีวิธีการอ่านในคีย์ส่วนตัวจากรหัสเก่าและสร้างใหม่ "เข้ากันได้" หนึ่ง ... หนึ่งที่ดูเหมือนว่า "เด็ก" มากกว่า "เด็กกำพร้า". การเปรียบเทียบที่ดีโดยวิธี!
FriendFX

@FriendFX - สิ่งที่คุณต้องการเป็นไปไม่ได้ ทอมถูกต้อง renweal สร้างใบรับรองใหม่
Ramhound

@ แรมฮาวด์ - ฉันเข้าใจ คำถามเปิดเดียวคือ: จุดประสงค์ของการสอนนั้นคืออะไร?
FriendFX

@FriendFX - มันเขียนโดยคนที่สุ่มบนอินเทอร์เน็ตเพียงเพราะพวกเขามีบล็อกไม่ได้หมายความว่าพวกเขาเข้าใจสิ่งที่พวกเขากำลังเขียนเกี่ยวกับ ผู้เขียนไม่ได้อธิบายว่าบทช่วยสอนจะทำให้เกิดใบรับรองใหม่
Ramhound

3
@FriendFX ใช่บทแนะนำนั้นจะใช้ได้กับใบรับรอง CA ที่ลงชื่อด้วยตนเองเท่านั้น หากคุณใช้คู่คีย์และหัวเรื่องเดียวกันคุณสามารถสร้างใบรับรอง CA หลายใบที่แต่ละใบจะเป็นผู้ออกใบรับรองที่ถูกต้องสำหรับใบรับรองที่ออกให้ ใบรับรองเหล่านี้สามารถออกโดยผู้ปกครอง CA ที่แตกต่างกันซึ่งเรียกว่า "cross-chaining"
Calrion

3

คำตอบสั้น ๆ : ไม่

การเชื่อถือใบรับรองที่ลงนามด้วยตนเองนั้นเหมือนกับการไว้วางใจหนังสือเดินทางเดี่ยวแทนประเทศที่ออกหนังสือเดินทางนั้น หากคุณได้รับพาสปอร์ตใหม่มันจะไม่ได้รับความเชื่อถือโดยอัตโนมัติจากคนที่เชื่อถือเก่าโดยเฉพาะเพราะมันเป็นสิ่งที่แตกต่างที่มีคุณสมบัติแตกต่างกัน (หมายเลขหนังสือเดินทางวันที่ ฯลฯ ); ไม่มีพื้นฐานสำหรับคนที่ไว้วางใจพาสปอร์ตเก่าอย่างชัดเจนเพื่อให้รู้ว่าสามารถเชื่อถือพาสปอร์ตใหม่ได้


0

หากคุณใช้ใบรับรองที่ลงชื่อด้วยตนเอง (ฉันแนะนำให้ใช้ xca บน windows) คุณสามารถกำหนดวันหมดอายุเป็น 7999-12-31 (นั่นเป็นเวลาสูงสุดสำหรับ UTC) และวันที่เริ่มต้นเป็น 1970-01-01 (สำหรับ เข้ากันได้กับเวลา / วันที่ที่กำหนดค่าผิดพลาดในพีซี)

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