การติดตั้ง SSL Certificate บน Node.js

สำหรับขั้นตอนการติดตั้ง SSL Certificate บน Node.js มีขั้นตอนการทำ ดังนี้

  1. พิมพ์โค้ดด้านล่างนี้ลงในเซิร์ฟเวอร์
var https = require('https');
var fs = require('fs');
var options = {
key: fs.readFileSync('/path/to/private.key'),
cert: fs.readFileSync('/path/to/certificate.crt'),
ca: fs.readFileSync ('/path/to/bundle.ca-bundle')
};
https.createServer(options, function (req, res) {
<!-- server script →


โดยที่

  • /path/to/bundle.ca-bundle คือ paht ที่ใช้เก็บไฟล์ .ca-bundle
  • /path/to/private.key คือ path ที่ทำการ generated private key ด้วย CSR และเก็บไว้บนเซิร์ฟเวอร์
  • /path/to/certificate.crt คือ path ที่ใช้เก็บ end-entity certificate

หมายเหตุ: เนื่องจากโมดูลของ node.js นั้นมีโครงสร้างที่แตกต่างจากของ JavaScript เป็นเหตุที่ทำให้เซิร์ฟเวอร์ไม่ยอมรับไฟล์ .ca-bundle file ที่ออกโดย Comodo ส่งผลทำให้มีการคืน Certificate ระดับ intermediate เฉพาะใบแรกเท่านั้น ซึ่งเมื่อใช้บนเบราว์เซอร์ของ destop รุ่นเก่ากับมือถือ ระบบจะแสดงข้อความว่าไม่ปลอดภัย โดยปัญหานี้จะเกิดขึ้นเฉพาะ node.js เวอร์ชั่น 0.5.x และ 3.x.x เท่านั้นและหากเกิดกรณีแบบนี้ขึ้นให้ใช้สคริปต์ (CoffeeScript-written) ดังต่อไปนี้

ca = []
chain = fs.readFileSync(‘/path/to/mydomain.ca-bundle’);
chain = chain.split "\n"
cert = []
for line in chain when line.length isnt 0
cert.push line
if line.match /-END CERTIFICATE-/
ca.push cert.join "\n"
cert = []


เมื่อใช้สคริปต์นี้แล้วให้ระบุ “ca” ลงไปโดยใช้คำสั่ง

ca: ca


โดยที่ ca: ca เป็นคำสั่งที่ใช้รันเซิร์ฟเวอร์อัตโนมัติ

2. บันทึกสคริปต์ที่เขียนขึ้นเป็นไฟล์ .js ซึ่งสามารถเรียกใช้งานโดยใช้คำสั่ง node.js ใน shell โดยพิมพ์คำสั่ง

node < script name >.js


3. ทำการทดสอบสคริปต์ที่เขียนขึ้น ถ้าใบรับรองถูกต้องจะแสดงรายละเอียด ดังภาพ

หมายเหตุ: สำหรับ node.js เวอร์ชั่นใหม่ จะไม่แสดงผลของสคริปต์ เนื่องจากผลจะถูกเก็บไว้ที่ไดเรกทอรี /dev/null ถ้าสคริปต์รันใน node shell จะแสดงผลดังรูป


4. เมื่อทำการตั้งค่า SSL Certificate เรียบร้อยแล้ว ระบบจะแสดง “secureConnection

Was this article helpful?

Related Articles