Tag Archive .pem

Byphunsanit

สร้าง Public Key จาก Private Key

การสร้าง Public Key ขึ้นมาใหม่จาก Private Key ที่เรามีอยู่แล้ว เป็นเรื่องที่ทำได้ปกติ ( และเป็นหัวใจของระบบ Asymmetric Encryption เลย ) เพราะโดยทางคณิตศาสตร์แล้ว Public Key ถูกคำนวณออกมาจาก Private Key ครับ


วิธีการสร้าง Public Key จาก Private Key ( RSA )

ส่วนใหญ่ในระบบ Linux หรือ Web Server เราจะใช้เครื่องมือที่ชื่อว่า OpenSSL ครับ

  • กรณีเป็น Standard SSH Key
    หากคุณมี Private Key ( เช่นไฟล์ id_rsa ) และต้องการสร้างไฟล์ .pub กลับคืนมา ให้ใช้คำสั่งนี้
    ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
    • -y: อ่านไฟล์ Private Key และพ่น Public Key ออกมา
    • -f: ระบุไฟล์ Private Key ต้นทาง
  • กรณีเป็น SSL/TLS Key ( สำหรับ Nginx หรือ HTTPS )
    หากคุณมีไฟล์ Private Key ของใบรับรอง SSL ( เช่น server.key ) และต้องการดึง Public Key ออกมาดูหรือเซฟเก็บไว้
    openssl rsa -in server.key -pubout -out server_public.key
    • -in: ไฟล์ Private Key ของคุณ
    • -pubout: คำสั่งให้ Output ออกมาเป็น Public Key
    • -out: ชื่อไฟล์ Public Key ที่ต้องการสร้าง

ตารางสรุปความแตกต่าง

ประเภท Keyเครื่องมือที่ใช้ไฟล์ที่ได้การนำไปใช้
SSH Keyssh-keygen.pubใช้สำหรับ Login เข้า Server ( Authorized_keys )
SSL Keyopenssl.key / .pemใช้สำหรับเข้ารหัสการรับส่งข้อมูลบนหน้าเว็บ ( HTTPS )

⚠️ ข้อควรระวัง ( Security First )

  • ห้ามแชร์ Private Key: คุณสามารถส่ง Public Key ให้ใครก็ได้ แต่ Private Key ต้องถูกเก็บเป็นความลับที่สุด
  • สิทธิ์การเข้าถึง ( Permissions ): ในระบบ Linux ไฟล์ Private Key ควรมี permission เป็น 600 ( Owner อ่าน / เขียนได้คนเดียว )
    chmod 600 your_private.key
  • การตรวจสอบความถูกต้อง: หากคุณอยากรู้ว่า Public Key นี้คู่กับ Private Key จริงไหม ( เช่น ก่อนเอาไป config ใน Nginx ) คุณสามารถเช็คค่า Modulus ให้ตรงกันได้

วิธีเช็คว่า Key ตรงกันหรือไม่ ( Modulus Check )

  • เช็ค Private Key
    openssl rsa -noout -modulus -in server.key | openssl md5
  • เช็ค Public Key
    openssl rsa -noout -modulus -pubin -in server_public.key | openssl md5

หากค่า MD5 Hash ที่ได้ออกมา “ตรงกัน” แสดงว่าเป็นคู่กันแน่นอนครับ


อ่านเพิ่มเติม