เทคนิคการแตกไฟล์ *.pfx ของ Microsoft Azure มาใช้กับ OpenVPN

เรื่องทั่วไปที่ไม่รู้จะโพสต์หรือหาอ่านได้ในกระทู้ไหน หรือเรื่องที่อยากให้ผมเขียน

Moderator: jubjang

เทคนิคการแตกไฟล์ *.pfx ของ Microsoft Azure มาใช้กับ OpenVPN

โพสต์โดย nuiz » 22 ก.พ. 2020 10:17

** บทความนี้ยังไม่เกี่ยวกับการติดตั้ง Issabel บน Microsoft Azure นะครับ เป็นเพียงการแนะนำวิธีเชื่อมต่อเข้า Azure ด้วย OpenVPN **

ลูกค้าผมท่านหนึ่งต้องการติดตั้ง Issabel บน Microsoft Azure Cloud ซึ่งผมยังไม่เคยติดตั้งบน Azure มาก่อนเลย ครั้งนี้จะเป็นครั้งแรกครับ ผมยังไม่เคยใช้งาน Microsoft Azure มาก่อนเลย ยังไม่รู้ว่าสมัครยังไง เข้าไปใช้งานยังไง ราคาเท่าไหร่ จะใช้ฟรีได้ 1 ปีเหมือน Google Cloud Platform มั๊ย

ลูกค้าส่งไฟล์ Config และ Certificate มาให้ผม ดูแล้วก็เชื่อมต่อด้วย VPN แหล่ะครับ ผมเลือก OpenVPN ที่ผมชอบใช้ ในไฟล์ที่ลูกค้าส่งมาให้ก็มีไฟล์ P2SChildCert12.pfx และ vpnconfig.ovpn

มาดูไฟล์ vpnconfig.opvn ครับ ข้างในมีข้อมูลในการเชื่อมต่อกับ OpenVPN Server ของ Microsoft Azure และข้อมูล Client Certificate Key และ Client Private Key ที่เราต้องเพิ่มเข้าไปครับ ดังนี้
โค้ด: เลือกทั้งหมด
# P2S client certificate
# Please fill this field with a PEM formatted client certificate
# Alternatively, configure 'cert PATH_TO_CLIENT_CERT' to use input from a PEM certificate file.
<cert>
$CLIENTCERTIFICATE
</cert>

# P2S client certificate private key
# Please fill this field with a PEM formatted private key of the client certificate.
# Alternatively, configure 'key PATH_TO_CLIENT_KEY' to use input from a PEM key file.
<key>
$PRIVATEKEY
</key>


เราต้องเอาค่ามาใส่แทน $CLIENTCERTIFICATE และ $PRIVATEKEY ครับ แล้วเราจะเอามาจากไหน? ก็เอามาจากไฟล์ P2SChildCert12.pfx นั่นแหล่ะครับ เราต้องแตกไฟล์ออกมาก่อน

1. อัพโหลดไฟล์ P2SChildCert12.pfx ไปไว้บนเครื่อง Linux เครื่องไหนก็ได้ (หรือ Windows ที่มีโปรแกรม OpenSSL หรือรันคำสั่ง OpenSSL ได้)
รันคำสั่ง openssl ครับ ตามด้วยออปชั่นและชื่อไฟล์ in และ out
โค้ด: เลือกทั้งหมด
openssl pkcs12 -in "P2SChildCert12.pfx" -nodes -out "P2SChildCert12.txt"

Enter Import Password: ใส่ password ที่ใช้ตอนเข้ารหัส
ถ้าพาสเวอร์ดถูกต้องจะเห็นข้อความนี้ครับ
MAC verified OK
เราก็จะได้ไฟล์ P2SChildCert12.txt

2. เปิดไฟล์ P2SChildCert12.txt
จะเห็นข้อมูล Keys ที่เข้ารหัสไว้ครับ ซึ่งจะมี 3 Keys คือ
Client Private Key
Client Certificate Key
Root Certificate Key -- ส่วนนี้เราไม่ใช้

ส่วนนี้คือ Client Private Keys ครับ เราต้องใช้
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+nMI/4Ezbrg6r
Z+tLJ4uw8oTQ4I/adnZBmvvhmNl9NxVSJ4EJT1zAs1uGicuzGG6NCUwyW8+fpQ73
eIr8BS3gLZTdn8Dmz9eBECfK/xvUizfHwngjaDlPdoBE8arcyoFXkaBWgEcjWLGl
1bHO5u+6niKXpLl5jYbkn48AxJuioP08tl0Yg36KZY50Xm5qzi0AGhY42lAePeF9
IxHdr/aEbCVgcYNWM1PLgw+73RnBIEQZ/S9sKn9fGQKBgQDFZcLLGMq7Y/LEsLf2
QJgc/df8lFY0GF/UPYq6VFT8IbNsCmLvnzgGkS98+8id54zYYJ33C1ufYcwuRKsR
F7f70aTr2TK45blPSZJHyo5YEnTAeXFfZSRcFj+/kQKBgHAyD3dUa0v5ZvdF6BPJ
VYXGEC0s/u+qidL1r9lrxQNLHc9yrYnXJHEPjt7ibFlNzCYkErzX/MRRpNRpGRTe
zQkc5ifsNw4onl3o7eMtO+hQPFNgoU+eVNwP6OT+c3oS6FVdbAhXp4eCl9Jg0OjA
ZaVbj4zXLBdeA/YpgWkLMrCI
-----END PRIVATE KEY-----

ส่วนนี้คือ Client Certificate Key ครับ เราต้องใช้
subject=/CN=P2SChildCert12
issuer=/CN=P2SRootCert
-----BEGIN CERTIFICATE-----
MIIDOjCCAiKgAwIBAgIQH4AgiDf97IdKOflB0Cls7DANBgkqhkiG9w0BAQsFADAW
MRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0yMDAyMjAwNjQwNDRaFw0yMTAyMjAw
NjI4MjJaMBkxFzAVBgNVBAMMDlAyU0NoaWxkQ2VydDEyMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAvpzCP+BM264Oq2frSyeLsPKE0OCP2nZ2QZr74ZjZ
AKM025AUZXFarf3OMTgKjPUA5KFQPYIRJTfZNHXdGvqThJrFH4RNJZytKIInJEcI
1vKUxapX28S05tsYOROmVk+IB7Zjlg3t7tcg17xt6OvHqiXo41Idu/GY3e4zklq5
XTH8Gy6IKdDjXpv83jsXIrwqV7o6gUXclFkM3i+drUxdgrLz4sFW/dFw5FTi/mH2
j6FMiEAPH+IOP7bn8OIvSC7awDnYifMyPrMk5T+VgnQsIW/T91uX5G/CT55nkn7Y
DUMdiJJiXEZQD+0swcJz/TNxq5inOOfU+phptVD90iO5YNYu/jQ+rqggOC2gQDuw
ZESzxz3IjhxNMmJIUU8=
-----END CERTIFICATE-----

ด้านล่างนี้เป็นของ Root Certificate Key ครับ เราไม่ได้ใช้
subject=/CN=P2SRootCert
issuer=/CN=P2SRootCert
-----BEGIN CERTIFICATE-----
MIIC5zCCAc+gAwIBAgIQF12m/fMg+qVHbRaKpAVJDjANBgkqhkiG9w0BAQsFADAW
MRQwEgYDVQQDDAtQMlNSb290Q2VydDAeFw0yMDAyMjAwNjA4MjJaFw0yMTAyMjAw
NjI4MjJaMBYxFDASBgNVBAMMC1AyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAz7fbmkhANlKW8JQKpJazQbUl4EY5ngMDWw8mqgru0jQz
m+IaKiC8JYcfx9cwn4bsqhdNR3+6W7MVq7Pb8ptaH6ms0L0+qauX/x/1NvfOKOxh
dTxj6hBYIdPSkFpdEqbdwsCnB0X/gM7IjLsTqp8cy1pCwRjzjnZyiRKVJVQmVN3K
6v9SscZidADph9McdGNkUKxzDZl5Zl2gXclF2qT6yba5akW2GS8tPorrUyzbfD62
-----END CERTIFICATE-----

3. ก๊อบข้อมูล Client Certificate Key ไปใส่ไว้ในไฟล์ vpnconfig.ovpn
ในไฟล์ P2SChildCert12.txt นะครับ ให้เริ่มต้นก๊อบข้อมูลตั้งแต่
-----BEGIN CERTIFICATE-----
ไปจนถึง
-----END CERTIFICATE-----
แล้วเอาไปแทน $CLIENTCERTIFICATE ในไฟล์ vpnconfig.ovpn ครับ

4. ก๊อบข้อมูล Client Private Key ไปใส่ไว้ในไฟล์ vpnconfig.ovpn
ในไฟล์ P2SChildCert12.txt นะครับ ให้เริ่มต้นก๊อบข้อมูลตั้งแต่
-----BEGIN PRIVATE KEY-----
ไปจนถึง
-----END PRIVATE KEY-----
แล้วเอาไปแทน $PRIVATEKEY ในไฟล์ vpnconfig.ovpn ครับ

5. เอาไฟล์ vpnconfig.ovpn (หรือจะเปลี่ยนชื่อไฟล์ใหม่ก็ได้) ไปไว้ในโฟลเดอร์ OpenVPN
บนเครื่อง Windows ผมอยู่โฟลเดอร์นี้ครับ
C:\Program File\OpenVPN\config

6. เชื่อมต่อ OpenVPN กับ Microsoft Azure
เชื่อมต่อได้ครับ ผมได้รับไอพีมาแบบนี้
รูปภาพ

7. ทดสอบ Ping Host ที่ลูกค้าสร้างไว้บน Microsoft Azure
รูปภาพ

8. ทดสอบ Import ไฟล์ vpnconfig.ovpn บนเครื่อง Android
เชื่อมต่อได้ครับ ดังรูป ใช้แอ๊บ OpenVPN Connect ครับ -- ไฟล์เดียวกัน เชื่อมต่อพร้อมกันทั้งบน Windows 10 และ Android ก็ได้นะครับ
รูปภาพ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 5886
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

ย้อนกลับไปยัง กระทู้ทั่วไป - ฝากคำถาม

ผู้ใช้งานขณะนี้

่กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 1 ท่าน