การแปลงไฟล์ Certificate .PFX เป็น .CRT และ .KEY โดยใช้ OpenSSL

Line
Facebook
Twitter
Google

ปกติแล้วถ้าเรามี Wildcard Certificate และใช้งานกับ Web Server ที่เป็น IIS เราก็มักจะใช้ PFX Certificate เพราะมันปลอดภัย ติดตั้งง่าย แต่ถ้าเราทำ Linux Server และใช้ Web Server เป็น Apache ส่วนใหญ่ก็จะนิยมใช้ CRT Certificate ร่วมกับคู่รหัส (KEY) ของมัน

สถานการณ์ที่เจอคือ เรามีไฟล์ PFX อยู่ไฟล์เดียว เราจะสร้างไฟล์ Certifaicate ที่เป็น CRT และ KEY ได้อย่างไร? ในที่นี้จะใช้ MacOS ในการทำงานนะครับ

ในการทำงานนี้เราจะใช้ตัว OpenSSL ซึ่งเป็น Tool สำหรับจัดการเกี่ยวกับ Certificate อยู่แล้ว โดยก่อนอื่นต้องตรวจสอบว่าเครื่องเราได้ติดตั้ง OpenSSL หรือยัง โดยใช้คำสั่ง

openssl

ถ้าติดตั้งแล้วจะต้องขึ้นหน้าจอรอรับคำสั่งต่อไปดังภาพ ก็พิมพ์คำสั่ง exit เพื่อออกมาเตรียมพร้อมได้เลย

แต่ถ้ายังไม่ติดตั้งก็ทำการติดตั้งซะ

brew update
brew install openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

ขั้นตอนที่ 1 สร้างไฟล์ Private Key แบบเข้ารหัส (Encrypted)

เข้าไปที่โฟลเดอร์ที่จัดเก็บไฟล์ PFX แล้วทำการสร้างไฟล์ Private Key โดยใช้ไฟล์ PFX ด้วยคำสั่งดังนี้

openssl pkcs12 -in [yourfile.pfx] -nocerts -out [keyfile-encrypted.key]

เมื่อกด Enter จะต้องใส่รหัสผ่านของไฟล์ PFX ให้ถูกต้อง และถ้าใส่ถูกต้อง ก็จะทำการตั้งรหัสผ่านสำหรับไฟล์ Private Key ที่เรากำลังจะสร้าง โดยต้องใส่ให้ตรงกันทั้ง 2 ครั้ง เพื่อเป็นการยืนยันว่าเราจะไม่ลืมรหัสผ่าน ถ้าทำถูกต้องก็จะได้ไฟล์ .KEY ซึ่งเป็น Private Key ขึ้นมาดังภาพ

***ไฟล์นี้อย่าให้หลุดไปถึงมือคนอื่นได้เด็ดขาดนะครับ เพราะมันคือ Private Key

ขั้นตอนที่ 2 สร้างไฟล์ CRT Certificate

ทำการสร้างไฟล์ CRT จากไฟล์ PFX โดยใช้คำสั่ง

openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [certificate.crt]

ใส่รหัสผ่านของไฟล์ PFX ให้ถูกต้อง ก็จะได้ไฟล์ CRT เลย

ขั้นตอนที่ 3 สร้าง Private Key แบบไม่เข้ารหัส (Unencrypted)

Private Key แบบไม่เข้ารหัส (Unencrypted) นี้ เราจะนำไปติดตั้งบน Web Server เช่น Apache เพราะมันต้องใช้ไฟล์ Key แบบไม่เข้ารหัส ซึ่งสามารถสร้างไฟล์นี้ได้จากไฟล์ Private Key แบบเข้ารหัส ที่เราได้สร้างไว้จากขั้นตอนที่ 1 นั่นเอง

สร้างไฟล์ Private Key แบบไม่เข้ารหัส โดยใช้คำสั่ง

openssl rsa -in [keyfile-encrypted.key] -out [keyfile-decrypted.key]

สุดท้ายเราก็จะได้ไฟล์ CRT และ KEY ที่พร้อมนำไปติดตั้งและใช้งานบน Apache Web Server แล้ว

Line
Facebook
Twitter
Google
Protected: [ตอนที่ 12] Social App Workshop ด้วย ASP.NET Core 3 กับ Angular 9 การทำ Validation ด้วย Reactive Forms
Protected: [ตอนที่ 11] Social App Workshop ด้วย ASP.NET Core 3 กับ Angular 9 Upload Photos
Protected: [ตอนที่ 10] Social App Workshop ด้วย ASP.NET Core 3 กับ Angular 9 การแก้ไขข้อมูล Profile
Protected: [ตอนที่ 9] Social App Workshop ด้วย ASP.NET Core 3 กับ Angular 9 สร้าง User Interface สวย ๆ
เตรียม Atom สำหรับ React Native #3
เตรียม Visual Studio Code สำหรับ React Native #2
การติดตั้ง React Native บน macOs #1
การกำหนดค่า TF_MIN_GPU_MULTIPROCESSOR_COUNT เพื่อให้ TensorFlow ใช้งาน GPU ทุกตัว
ติดตั้ง Ubuntu 17.04 ใช้งานร่วมกับ Windows 10
การติดตั้ง TensorFlow & Caffe บน Ubuntu 16.04