พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง
เชี่ยวชาญคำสั่ง OpenSSL ที่จำเป็นสำหรับการสร้างกุญแจ การเข้ารหัส การทำแฮช และการตรวจสอบใบรับรอง
พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
ข้อมูลรุ่นและการสร้างของ OpenSSL
คำสั่ง "openssl version -a" แสดงรุ่นของ OpenSSL วันที่สร้าง คอมไพเลอร์ และตัวเลือกที่กำหนดค่าไว้ การตรวจสอบรุ่นมีความสำคัญ เนื่องจากความสามารถและค่าเริ่มต้นด้านการเข้ารหัสแตกต่างกันอย่างมากระหว่าง OpenSSL 1.0.x, 1.1.x และ 3.x อัลกอริทึมรุ่นเก่าจำนวนมากถูกปิดใช้งานไว้เป็นค่าเริ่มต้นในรุ่นใหม่เพื่อความปลอดภัย
การสร้างคีย์ RSA
คำสั่ง "openssl genrsa -out private.pem 4096" สร้างคีย์ส่วนตัว RSA ขนาด 4096 บิตในรูปแบบ PEM สำหรับการใช้งานจริง ขนาด 2048 บิตเป็นขั้นต่ำ ขนาด 3072 บิตให้ความปลอดภัยประมาณ 128 บิต และขนาด 4096 บิตให้ระยะเผื่อเพิ่มเติม สามารถเข้ารหัสคีย์ด้วย AES ขณะจัดเก็บได้โดยเพิ่ม "-aes256" ในคำสั่ง ซึ่งระบบจะขอให้ป้อนวลีรหัสผ่าน
การสร้างคีย์ EC
การสร้างคีย์เส้นโค้งวงรีมีสองขั้นตอน ขั้นแรก: "openssl ecparam -name prime256v1 -genkey -noout -out ec_private.pem" จะสร้างคีย์ส่วนตัว EC โดยใช้เส้นโค้ง P-256 อีกทางเลือกหนึ่งคือ "openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -out ec_private.pem" ซึ่งใช้อินเทอร์เฟซ genpkey รุ่นใหม่กว่าและเป็นตัวเลือกที่แนะนำสำหรับโค้ดใหม่
การดูรายละเอียดคีย์
สามารถตรวจสอบเนื้อหาคีย์ได้ด้วย "openssl rsa -text -noout -in private.pem" สำหรับคีย์ RSA ซึ่งจะแสดงโมดูลัส เลขชี้กำลังสาธารณะ และตัวประกอบจำนวนเฉพาะ สำหรับคีย์ EC ใช้ "openssl ec -text -noout -in ec_private.pem" เพื่อแสดงชื่อเส้นโค้งและค่าคีย์ ตัวเลือก "-noout" จะระงับการแสดงผลที่เข้ารหัสในรูปแบบ PEM
การสร้างข้อมูลสุ่ม
OpenSSL สามารถสร้างไบต์สุ่มที่ปลอดภัยทางการเข้ารหัสได้: "openssl rand -hex 32" แสดงไบต์สุ่ม 32 ไบต์ในรูปเลขฐานสิบหก หรืออักขระเลขฐานสิบหก 64 ตัว ซึ่งเหมาะสำหรับสร้างคีย์สมมาตรหรือค่าที่ใช้เพียงครั้งเดียว "openssl rand -base64 32" แสดงไบต์สุ่มที่เข้ารหัสแบบ base64 วิธีนี้ใช้แหล่งเอนโทรปีของ OS (/dev/urandom บนระบบ Unix)
การคำนวณค่าแฮช
คำสั่ง "openssl dgst" ใช้คำนวณค่าไดเจสต์ของข้อความ: "openssl dgst -sha256 file.txt" ใช้คำนวณแฮช SHA-256 ของไฟล์ ส่วน "openssl dgst -sha256 -hmac key file.txt" ใช้คำนวณ HMAC-SHA256 และ "openssl dgst -sha256 -sign private.pem -out sig.bin file.txt" ใช้สร้างลายเซ็นดิจิทัลสำหรับไฟล์
การเข้ารหัสไฟล์
การเข้ารหัสไฟล์แบบสมมาตรใช้คำสั่ง "openssl enc -aes-256-cbc -pbkdf2 -in plaintext.txt -out encrypted.bin" แฟล็ก "-pbkdf2" ใช้ PBKDF2 เพื่อสร้างกุญแจจากวลีรหัสผ่าน แทนที่ EVP_BytesToKey ซึ่งเลิกใช้งานแล้ว การถอดรหัสใช้คำสั่ง "openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out decrypted.txt" สำหรับโค้ดใหม่ ควรเลือกใช้โหมด AEAD เช่น AES-256-GCM
การแปลงรูปแบบ PEM และ DER
ใบรับรองและกุญแจมีรูปแบบการเข้ารหัสอยู่สองรูปแบบ PEM ใช้การเข้ารหัสแบบ base64 และมีบรรทัดส่วนหัวและส่วนท้าย (-----BEGIN CERTIFICATE-----) ซึ่งเครื่องมือ Unix ส่วนใหญ่ใช้ ส่วน DER เป็นการเข้ารหัสแบบไบนารีที่ Java และ Windows ใช้ การแปลง PEM เป็น DER ใช้คำสั่ง "openssl x509 -inform PEM -outform DER -in cert.pem -out cert.der" หากต้องการแปลง DER เป็น PEM ให้สลับแฟล็ก -inform และ -outform
การตรวจสอบลายเซ็น
การตรวจสอบลายเซ็นดิจิทัลใช้คำสั่ง "openssl dgst -sha256 -verify public.pem -signature sig.bin file.txt" โดยต้องแยกกุญแจสาธารณะออกมาก่อนด้วยคำสั่ง "openssl rsa -pubout -in private.pem -out public.pem" สำหรับการตรวจสอบโดยใช้ใบรับรอง คำสั่ง "openssl verify -CAfile ca.pem cert.pem" จะตรวจสอบใบรับรองกับสายโซ่ CA ที่ระบุ
การตรวจสอบรายละเอียดใบรับรอง
การตรวจสอบใบรับรองเป็นงาน OpenSSL ที่พบบ่อยที่สุดอย่างหนึ่ง คำสั่ง "openssl x509 -text -noout -in cert.pem" จะแสดงช่องข้อมูลทั้งหมดของใบรับรอง รวมถึงชื่อเรื่อง ผู้ออก วันที่เริ่มต้นและสิ้นสุดความถูกต้อง SAN ต่าง ๆ และส่วนขยาย ส่วนคำสั่ง "openssl x509 -enddate -noout -in cert.pem" จะแสดงเฉพาะวันหมดอายุ ซึ่งมีประโยชน์สำหรับสคริปต์ตรวจติดตาม
การเชื่อมต่อกับเซิร์ฟเวอร์ TLS
คำสั่ง "openssl s_client -connect example.com:443 -servername example.com" จะสร้างการเชื่อมต่อ TLS และแสดงสายโซ่ใบรับรองของเซิร์ฟเวอร์ เวอร์ชัน TLS ที่เจรจา และชุดการเข้ารหัส การเพิ่ม "-showcerts" จะแสดงใบรับรองทั้งหมดในสายโซ่ คำสั่งนี้มีประโยชน์อย่างยิ่งสำหรับการแก้ไขข้อบกพร่องของปัญหาสายโซ่ใบรับรอง ปัญหาเวอร์ชัน TLS และการแนบ OCSP
การตรวจสอบคำสั่ง genrsa ของ OpenSSL
คำสั่ง "openssl genrsa -aes256 -out private.pem 2048" ทำอะไร
สรุปบทเรียน: พื้นฐาน CLI ของ OpenSSL
OpenSSL มีคำสั่งสำหรับการสร้างกุญแจ (genrsa, genpkey) การแปลงรูปแบบ (PEM/DER) การสร้างข้อมูลสุ่ม (rand) การคำนวณแฮชและการลงนาม (dgst) การเข้ารหัสไฟล์ (enc) การตรวจสอบใบรับรอง (x509 -text) การตรวจสอบสายโซ่ (verify) และการแก้ไขข้อบกพร่องของ TLS (s_client) คำสั่งเหล่านี้ครอบคลุมงานใบรับรองและวิทยาการเข้ารหัสลับที่ทำเป็นประจำเกือบทั้งหมด
คำถามที่พบบ่อย
บทเรียน “พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง”
เชี่ยวชาญคำสั่ง OpenSSL ที่จำเป็นสำหรับการสร้างกุญแจ การเข้ารหัส การทำแฮช และการตรวจสอบใบรับรอง คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานสำคัญของ OpenSSL ผ่านบรรทัดคำสั่ง
- การสร้างและจัดการสายโซ่ใบรับรอง
- OCSP Stapling และความโปร่งใสของใบรับรอง
- Let's Encrypt และการทำงานอัตโนมัติด้วยโพรโทคอล ACME