|  | 
 
| บทความนี้จะแนะนำวิธีการเปลี่ยนการเข้าใช้งาน localhost จากเดิมที่เมื่อเข้าผ่าน https แล้วจะขึ้นว่า "Not Secure" ให้สามารถใช้งานได้ปกติ ของต้องเตรียม
 
 สำหรับ Windows จะใช้เป็น Cygwin ส่วน UNIX นั้นส่วนใหญ่จะมีคำสั่ง openssl อยู่แล้ว
Webbrowser รุ่นปี 2020 ขึ้นไป (รุ่นเก่าๆ จะต้องไปทำใน MMC)
ตัวแก้ไขข้อความ เช่น VS Codeเซิฟเวอร์อะไรก็ได้ที่เปิดใช้ SSL ได้ (ในที่นี้ใช้ httpd)
 สารบัญ
 
 สร้าง Root CA สำหรับใช้เป็นผู้ให้บริการสร้างใบรับรอง SSL ของ localhost แล้วเซ็นใบรับรองเข้ากับตัว Root CAใส่ใบรับรอง localhost ในเซิฟเวอร์ลองเข้าเว็บ localhost เพื่อเช็คว่าเข้า https ได้ใช้เว็บเบราวเซอร์เพิ่ม Root CA ลงไปในผู้ให้บริการที่ได้รับอนุญาต อาจจะต้อง Restart ก่อนถึงจะพบว่าใบรับรองสีเขียวแล้ว
 ขั้นตอนที่ 1
 สร้าง CA certificate หรือใบรับรองฝั่งผู้ให้บริการ โดยปกติแล้วหากเราจะทำแบบออนไลน์ทั่วโลกเราจะต้องไปสมัคร SSL กับผู้ให้บริการใบรับรองต่างๆ แต่ในที่นี้เราใช้กับเครื่องของเราเองไม่จำเป็นต้องลงทะเบียนกับใครเราก็สามารถตั้งตัวเองเป็นผู้ให้บริการได้เลย
 
 เริ่มจากสร้าง คีย์ ของเราขึ้นมาก่อนด้วยคำสั่ง
 
 ในการสร้างคีย์นั้นเราจะต้องกำหนด passphrase เองแล้วก็จดไว้ด้วยเพราะต้องนำไปใช้ต่อในการสร้าง root CAคัดลอกโค๊ด$ openssl genrsa -out CA.key -des3 2048
คำสั่งในการสร้างตัว root CA โดยจะเป็นการดึงเอา CA.key มาสร้างเป็นใบรับรองสิทธิ์ของฝั่งผู้ให้บริการ
 
 คัดลอกโค๊ด$ openssl req -x509 -sha256 -new -nodes -days 3650 -key CA.key -out CA.pem
ขั้นตอนที่ 2
 สร้างใบรับรองให้กับ localhost จะเป็นเสมือนใบรับรองในเครื่องเราก่อนว่าสามารถใช้งาน SSL ได้
 ก่อนอื่นต้องเตรียมข้อมูลสำหรับการสร้างใบรับรองก่อนโดยเราจะสร้างไฟล์ขึ้นมาชื่อ localhost.ext แล้วกดหนดเนื้อหาดังต่อไปนี้
 
 เป็นการบอกรายละเอียดว่าใบรับรองนี้เป็นของไอพีไหนโดเมนอะไรคัดลอกโค๊ดauthorityKeyIdentifier = keyid,issuer
basicConstraints = CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
IP.1 = 127.0.0.1
ตรงนี้สามารถนำไปประยุคใช้กับการกำหนด hosts ได้ด้วย สำหรับวินโดวส์กดหนดได้ที่ /etc/hosts
 
 สร้างคีย์ให้กับ localhost ด้วยคำสั่งต่อไปนี้
 
 กำหนด passphrase ให้กับคีย์แล้วก็จดไว้ด้วยเพราะเดี่ยวต้องใช้ตอนสร้างใบรับรองของ localhostคัดลอกโค๊ด$ openssl genrsa -out localhost.key -des3 2048
 ต่อไปก็มาสร้างตัว request ในการขอทำสัญญาร่วมกับใบรับรองของเซิฟเวอร์พูดง่ายๆ คือมันคือใบคำร้องที่จะส่งจากเซิฟเวอร์ไปยังผู้ให้บริการหรือ CSR นั่นเอง
 
 หลังจากกรอกรหัส passphrase เสร็จทีนี้เราก็จะมีทั้งคีย์ทั้งใบคำร้องแล้วต่อไปก็จะเป็นการนำเอาทั่วคู่ไปทำสัญญาร่วมกันกับผู้ให้บริการ ซึ่งปกติถ้าเราเป็นคนตั้งเซิฟเวอร์เราจะต้องส่งคีย์กับคำร้องของเครื่องเราไปให้ผู้จำหน่าย SSL แต่ในที่นี้มันคือเราเองก็ใช้คำสั่งต่อไปนี้ในการทำขั้นตอนนี้เลยคัดลอกโค๊ด$ openssl req -new -key localhost.key -out localhost.csr
 เสร็จแล้วเราก็จะได้ใบรับรองหรือ CRT มาซึ่งจะยังไม่สามารถเอาไปใช้ได้เพราะเนื้อหาข้างในมันมาแบบเข้ารหัสแล้วเราก็ต้องนำมันมาถอดความก่อนโดยก็จะต้องใช้คีย์ localhost ของเรานั่นแหละในการถอดความคัดลอกโค๊ด$ openssl x509 -req -in localhost.csr -CA CA.pem -CAkey CA.key -CAcreateserial -days 3650 -sha256 -extfile localhost.ext -out localhost.crt
 คัดลอกโค๊ด$ openssl rsa -in localhost.key -out localhost.decrypted.key
ขั้นตอนที่ 3
 ใสใบรับรองลงไปในเซิฟเวอร์ที่เราต้องการในที่นี้คือ Apache2 ก็จะต้องเอาไปกำหนดค่าใส่ไว้ในไฟล์ httpd.conf หรือ httpd_ssl.conf โดยเปลี่ยนการตั้งค่าหรือกรอกประมาณนี้
 
 ตรงนี้คือแล้วแต่เลยว่าใครใช้กับเซิฟเวอร์ไหนต้องตั้งยังไงหลักๆ ก็คือการเอา CRT กับ KEY ไปใส่นั่นเองหลังจากกำหนดเสร็จแล้วก็รีสาร์ทเซิฟเวอร์นิดหนึ่งดูว่ากำหนดค่าถูกหรือเปล่าติดขัดตรงไหนคัดลอกโค๊ด<VirtualHost _default_:443>
        SSLEngine on
        SSLCertificateFile "${SRVROOT}/conf/localhost.crt"
        SSLCertificateKeyFile "${SRVROOT}/conf/localhost.decrypted.key"
</VirtualHost>  
 ขั้นตอนที่ 4
 เปิดเว็บเบราวเซอร์ขึ้นมาแล้วลองเข้าไปที่ https://localhost ดูว่าสามารถเปิดเว็บได้ไหมมาถึงตรงนี้มันจะยังแค่เปิดได้เป็น SSL แล้ว แต่มันยังแดงๆ อยู่ใช่ไหมละ
 
 
 ขั้นตอนที่ 5
 นำเข้าตัว Root CA ของเราไปไว้ในหมวดผู้ให้บริการที่น่าเชื่อถือ ตรงนี้ถ้าเป็นเว็บเบราว์เซอร์รุ่นใหม่ ๆ จะสามารถทำได้ใน Settings ของโปรแกรมเลยโดยเข้าไปที่ Options ไปที่ส่วนตั้งค่าความปลอดภัย Privacy and Security แล้วในนั้นจะมีหมวด Certificate อยู่กดเข้าไปจะโชว์ประมาณนี้
 
 
 เราก็เพิ่มตัว CA.pem ของเราลงไปในแทบ Trusted Autherities
 
 
 เสร็จแล้วบางคนจะเห็นว่าลองเข้า localhost แล้วมันเป็นสีเขียวเลย แต่ถ้าบางคนยังไม่เห็นให้ลองรีสตาร์ทเครื่องดูก่อนเพราะอาจจะติดแคช เท่านี้ก็ได้ https://localhost เขียวๆ ไว้ใช้แล้วครับ
 
 
 
 ข้อสังเกต
 หลักการนี้คือหลักการเดียวกันกับการขอใบรับรองจริงๆ นั่นแหละ เพียงแต่ว่าอันนี้เราใช้ในเครื่องเราเองก็เลยไม่จำเป็นต้องไปพึงพา CA ของบริษัทผู้ให้บริการ เพราะถ้าเครื่องไหนไม่มี CA ที่เราสร้างขึ้นมาแล้วเปิดมาเซิฟเวอร์เราเครื่องนั้นก็จะไม่ขึ้นเขียวอยู่ดี
 
 
 | 
 |