เครื่องมือสร้างใบรับรอง SSL

ข้อมูลระบุตัวตน

ใบรับรองแบบ self-signed จะไม่ได้รับความเชื่อถือจากเบราว์เซอร์โดยค่าเริ่มต้น: ใช้เฉพาะสำหรับการพัฒนาในเครื่อง การทดสอบ หรือเครือข่ายส่วนตัว

สร้างใบรับรองที่ลงนามด้วยตนเองสำหรับการพัฒนาในเครื่องหรือการทดสอบภายใน ได้โดยตรงในเบราว์เซอร์ของคุณ คุณเลือกขนาดคีย์ RSA (2048, 3072 หรือ 4096 บิต), Common Name, Subject Alternative Names, ช่วงเวลาที่มีผล และรายละเอียดพื้นฐานขององค์กร ใบรับรองและคีย์ส่วนตัวจะถูกสร้างในเบราว์เซอร์ของคุณและไม่ถูกส่งไปยังเซิร์ฟเวอร์ของเราเลย และคุณดาวน์โหลดทั้งสองเป็นไฟล์ PEM ที่พร้อมใช้กับ Nginx หรือ Apache

การสร้างใบรับรองทำงานอย่างไร

  1. 1

    เลือกขนาดคีย์ RSA

    2048 บิตเพียงพอสำหรับการทดสอบส่วนใหญ่ ส่วน 3072 หรือ 4096 ให้คีย์ที่ใหญ่ขึ้นโดยแลกกับความเร็ว

  2. 2

    ป้อน subject และ SAN

    Common Name พร้อมกับทุกชื่อโฮสต์หรือ IP ที่ใบรับรองควรครอบคลุม (เบราว์เซอร์สมัยใหม่จะไม่สนใจ CN แต่ใช้ SAN แทน)

  3. 3

    สร้างในเบราว์เซอร์

    ใบรับรองที่ลงนามด้วยตนเองจะถูกสร้างและลงนามด้วยคีย์ส่วนตัวที่จับคู่กัน ทั้งหมดทำในเครื่องภายในเบราว์เซอร์ของคุณ

  4. 4

    ดาวน์โหลดผลลัพธ์

    ใบรับรองที่เข้ารหัสแบบ PEM (`cert.pem`) และคีย์ส่วนตัวแบบ PEM (`key.pem`) พร้อมติดตั้ง

ทุกอย่างเกิดขึ้นในเบราว์เซอร์ของคุณ

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

ลงนามด้วยตนเองหมายความว่าอย่างไร

คุณเป็นทั้งผู้ออกและ subject ในเวลาเดียวกัน ใบรับรองถูกลงนามด้วยคีย์ส่วนตัวของมันเอง จึงไม่มีผู้ออกใบรับรอง (CA) สาธารณะรายใดรับรองให้ นั่นคือเหตุผลที่เบราว์เซอร์แสดงคำเตือน มันเหมาะกับการทดสอบ การพัฒนาในเครื่อง (localhost, dev.local) และเซิร์ฟเวอร์ภายในที่คุณสามารถแจกจ่ายใบรับรองให้ไคลเอนต์ที่ต้องไว้วางใจมัน

หากคุณต้องการใบรับรองที่อินเทอร์เน็ตสาธารณะไว้วางใจ เครื่องมือนี้ไม่ใช่ขั้นตอนที่ถูกต้อง คุณต้องมีใบรับรองที่ลงนามโดย CA (เช่นจาก Let’s Encrypt หรือ CA แบบเสียเงิน) ซึ่งต้องใช้คำขอลงนามใบรับรอง (CSR) และการยืนยันโดเมนที่เครื่องมือในเบราว์เซอร์นี้ไม่ได้ทำ

สิ่งที่อยู่ในใบรับรอง

ฟิลด์ หมายเหตุ
Subject (CN, O, C) Common Name, องค์กร, ประเทศ
Subject Alternative Names ทุกโดเมนหรือ IP ที่ครอบคลุม (สำคัญมาก!)
คีย์สาธารณะ RSA ได้มาจากคีย์ส่วนตัวที่สร้างขึ้น
ผู้ออก เหมือนกับ subject เพราะลงนามด้วยตนเอง
ช่วงที่มีผล Not Before / Not After (จำนวนวันที่มีผลของคุณ)
Key Usage digitalSignature, keyEncipherment
Extended Key Usage serverAuth, clientAuth
Basic Constraints CA:FALSE (ใบรับรองปลายทาง ไม่ใช่ CA)

ไฟล์ผลลัพธ์

  • key.pem คีย์ส่วนตัว (ปกป้องไว้ โหมด 0600)
  • cert.pem ใบรับรองที่ลงนามด้วยตนเอง (สาธารณะ แจกจ่ายได้)

สำหรับ Nginx

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate     /etc/ssl/certs/cert.pem;
    ssl_certificate_key /etc/ssl/private/key.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;
}

สำหรับ Apache 2.4+

<VirtualHost *:443>
    ServerName example.com
    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/cert.pem
    SSLCertificateKeyFile /etc/ssl/private/key.pem
</VirtualHost>

การทำให้เครื่องของคุณเองไว้วางใจใบรับรอง

หากต้องการปิดคำเตือนของเบราว์เซอร์บนเครื่องที่คุณควบคุม ให้นำเข้า cert.pem ไปยังที่เก็บความน่าเชื่อถือของระบบหรือเบราว์เซอร์นั้น ทำเช่นนี้เฉพาะกับใบรับรองที่คุณสร้างเองและบนอุปกรณ์ที่เป็นของคุณเท่านั้น เครื่องมืออย่าง mkcert ช่วยทำ CA ในเครื่องแบบอัตโนมัติสำหรับหลายบริการ ส่วนเครื่องมือนี้สร้างใบรับรองที่ลงนามด้วยตนเองครั้งละหนึ่งใบ

สิ่งที่ใบรับรองลงนามด้วยตนเองไม่เหมาะจะใช้

  • เว็บไซต์สาธารณะ ผู้ใช้จะเห็นคำเตือน และหลายคนจะออกไป
  • การเชื่อมต่อ API ของบุคคลที่สาม ไคลเอนต์ส่วนใหญ่จะปฏิเสธผู้ออกที่ไม่รู้จัก
  • การใช้งานจริง (production) ไม่ได้เด็ดขาด ใช้ Let’s Encrypt (ฟรี) หรือ CA แบบเสียเงินสำหรับทุกสิ่งบนอินเทอร์เน็ตแบบเปิด

คำถามที่พบบ่อย

ไม่ คู่คีย์และใบรับรองถูกสร้างในเบราว์เซอร์ของคุณและอยู่บนอุปกรณ์ของคุณ ไม่มีอะไรถูกอัปโหลด ถึงอย่างนั้นก็ควรเก็บไฟล์ key.pem ที่ดาวน์โหลดไว้เป็นความลับ เพราะใครก็ตามที่ถือมันไว้ก็สามารถปลอมเป็นใบรับรองนั้นได้

ไม่ได้ หากจะมีบุคคลที่สามเชื่อมต่อเข้ามา เบราว์เซอร์จะแสดงคำเตือนที่ชัดเจน ใช้ใบรับรองที่ลงนามโดย CA แบบฟรี (Let’s Encrypt, ZeroSSL) หรือแบบเสียเงิน ส่วนแบบลงนามด้วยตนเองเหมาะกับการสื่อสารเครื่องต่อเครื่องภายในเครือข่ายภายในที่คุณควบคุมทั้งสองปลายทาง

ในอดีต CN เก็บโดเมนหลัก เบราว์เซอร์สมัยใหม่จะไม่สนใจ CN ในการยืนยันโฮสต์และใช้เฉพาะ SAN ให้ใส่ทุกชื่อโฮสต์ใน SAN เสมอ และตั้ง CN เป็นโดเมนหลักเพียงเพื่อการระบุที่อ่านง่ายเท่านั้น

ได้ ใส่ *.example.com ใน SAN มันครอบคลุมโดเมนย่อยหนึ่งระดับ สำหรับหลายระดับ ให้เพิ่มไวลด์การ์ดหลายรายการ (*.example.com และ *.dev.example.com)

เครื่องมือที่เกี่ยวข้อง

ตัวสร้าง HMAC

สร้างลายเซ็น HMAC (SHA-256, SHA-384, SHA-512, SHA-1 และ MD5) จากข้อความและกุญแจลับ เพื่อใช้ในการยืนยันตัวตนผ่าน API และ Webhook

ตัวเข้ารหัสไฟล์ Base64

เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด

ตัวระบุการเข้ารหัส

วางไซเฟอร์เท็กซ์หรือแฮช แล้วตัวระบุจะแนะนำอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็น: MD5, SHA, bcrypt, AES, RSA, Base64 และอื่น ๆ

เครื่องแปลง Gwei เป็น Ether

แปลงจำนวนในหน่วย Gwei เป็น Ether (ETH) ด้วยทศนิยมสูงสุด 18 ตำแหน่ง มีประโยชน์สำหรับการประมาณค่าธรรมเนียม Gas และการอ่านข้อมูลธุรกรรม

ตัวสร้าง JWT

สร้าง JWT ที่มีการลงนาม โดยกำหนดหัวข้อ (header) แบบกำหนดเอง สิทธิ์ของพารามิเตอร์ในเนื้อหา (payload claims) การลงนามด้วย HMAC หรือ RSA รวมถึงกำหนดระยะเวลาหมดอายุและกลุ่มผู้ใช้งานที่อนุญาต เพื่อใช้ในการทดสอบ

ตัวสร้างแฮช (Hash Generator)

สร้างค่าแฮช MD5, SHA-1, SHA-256, SHA-384, SHA-512 และ CRC32 จากข้อความ พร้อมค่าไดเจสต์พร้อมคัดลอกสำหรับเช็คซัมและการเปรียบเทียบ

เครื่องมือนี้มีให้บริการในภาษาอื่น