CSR คืออะไร?
Certificate Signing Request (CSR) คือเอกสาร PKCS#10 ขนาดเล็กที่ certificate authority (CA) ต้องการเพื่อออก TLS หรือใบรับรองสำหรับลงนามโค้ด เอกสารนี้รวบรวมส่วนสาธารณะของคู่คีย์, ตัวตนที่คุณต้องการให้ CA รับรอง (Subject), และตัวระบุเพิ่มเติมเช่นชื่อ DNS หรือที่อยู่ IP (Subject Alternative Names หรือ SAN) ทั้งหมดนี้ลงนามด้วย private key ที่ตรงคู่กัน
เครื่องมือนี้สร้าง CSR ทั้งหมดในเบราว์เซอร์โดยใช้ Web Crypto API และ @peculiar/x509 ไม่มีข้อมูลเกี่ยวกับคีย์หรือคำขอของคุณถูกส่งไปยังเซิร์ฟเวอร์ใดๆ
เมื่อใดควรใช้เครื่องมือนี้
- ขอใบรับรอง TLS จาก public CA (Let’s Encrypt, DigiCert, ZeroSSL, Sectigo เป็นต้น) เมื่อขั้นตอนของพวกเขาต้องการให้คุณวาง CSR ของตัวเอง
- สร้าง CSR สำหรับ internal certificate authority — แบบใช้ ACME, smallstep, EJBCA, AD CS — โดยไม่ต้องไว้วางใจฟอร์มที่โฮสต์บนเซิร์ฟเวอร์
- ออกใบรับรองใหม่ด้วย private key เดิม โดยนำเข้า PKCS#8 PEM key ที่มีอยู่และลงนามเฉพาะ CSR ใหม่
วิธีกรอกแบบฟอร์ม
- Key source — เลือก Generate new เพื่อสร้างคู่คีย์ใหม่ หรือ Import existing เพื่อวาง PKCS#8 PEM key ที่ไม่ได้เข้ารหัส คีย์แบบเข้ารหัส,
RSA PRIVATE KEYแบบเก่า และบล็อกEC PRIVATE KEYจะไม่ได้รับการยอมรับ แปลงด้วยopenssl pkcs8 -topk8 -nocryptก่อน - Algorithm — RSA มีความเข้ากันได้กว้างที่สุดเป็นค่าเริ่มต้น ECDSA สร้างลายเซ็นที่เล็กกว่าและได้รับการรองรับอย่างแพร่หลายจาก CA และ TLS client สมัยใหม่
- Subject — CA สาธารณะส่วนใหญ่จะไม่สนใจข้อมูลอื่นนอกจาก Common Name และใช้รายการ DNS SAN เป็นหลัก แต่ private CA อาจยังต้องการ DN แบบครบถ้วน
- SAN entries — ระบุชื่อโฮสต์, IP, ที่อยู่อีเมล หรือ URI ที่ต้องการให้ใบรับรองครอบคลุม หนึ่งรายการต่อบรรทัด หรือคั่นด้วยจุลภาค
สิ่งที่ควรคำนึงถึง
- Private key ที่แสดงพร้อมกับ CSR สร้างขึ้นในเครื่องและไม่ได้ออกจากเบราว์เซอร์ บันทึกไว้ก่อนปิดแท็บ — หากไม่มี private key ที่ตรงคู่กัน ใบรับรองที่ลงนามแล้วจะใช้งานไม่ได้
- CA สาธารณะกำหนดให้ Common Name (หรืออย่างน้อยหนึ่ง SAN entry) เป็นชื่อ DNS ที่พวกเขาสามารถตรวจสอบได้ SAN แบบที่อยู่ IP ส่วนใหญ่มีประโยชน์สำหรับใบรับรองภายในองค์กร
- Private key ที่สร้างขึ้นไม่ได้เข้ารหัส เพิ่ม passphrase ด้วย
openssl pkcs8 -in key.pem -topk8 -out key-enc.pemหากต้องการก่อนจัดเก็บ - รองรับเฉพาะ RSA (2048/3072/4096) และ ECDSA (P-256/P-384/P-521) เท่านั้น EdDSA ถูกละเว้นโดยตั้งใจเนื่องจากการรองรับในเบราว์เซอร์และ CA ยังไม่สม่ำเสมอ