วิธีตั้งค่า HTTPS บน Apache2 รุ่นที่สูงกว่า 2.4.8

จากบทความ การแก้ไข Certificate สำหรับ Apache Web Server (Ubuntu 14.04 LTS) ตอนนี้ Apache2 รุ่นที่สูงกว่า 2.4.8 ประกาศให้ SSLCertificateChainFile นั้น obsolete หรือ จะไม่ใช้อีกต่อไป จากเดิม เราเคยใช้ SSLCertificateFile /etc/apache2/cer/[cer-file-name].crt SSLCertificateKeyFile /etc/apache2/cer/[cer-file-name].key SSLCertificateChainFile /etc/apache2/cer/[cer-file-name].ca-bundle ต่อไปนี้ แนะนำให้ใช้แค่ SSLCertificateFile /etc/apache2/cer/[cer-file-name]_combined.crt SSLCertificateKeyFile /etc/apache2/cer/[cer-file-name].key แล้ว  /etc/apache2/cer/[cer-file-name]_combined.crt มาจากไหน ??? มันมากจากการเอาไฟล์ [cer-file-name].crt แล้วต่อท้ายด้วยไฟล์ [cer-file-name].ca-bundle ด้วยคำสั่ง cat [cer-file-name].crt [cer-file-name].ca-bundle > [cer-file-name]_combined.crt เช่น cat in_psu.crt intermediate_ca.crt > in_psu_combined.crt เป็นต้น เสร็จแล้ว ก็ Restart Apache — จบแค่นี้ ใช้งานได้ TL;DR Q: มีไฟล์ .crt เต็มไปหมด จะรู้ได้ไงว่า อันไหนคือ Certificate ของอะไร อย่างไร A: สมมุติ Certificate ของ Server ที่ได้มา ชื่อ server.crt ต้องใช้คำสั่งนี้ ดูรายละเอียด openssl x509 -in server.crt -text ผลที่ได้ จะประมาณนี้ สิ่งสำคัญที่ควรดู ในที่นี้คือ Issuer จะเห็นว่า CN หรือ common name คือ AlphaSSL CA – SHA256 – G2  และบรรทัด Subject จะบอกว่า Domain (*.xxxxx.psu.ac.th) ที่ลงทะเบียนไว้ อยู่ภายใต้ “AlphaSSL CA” อีกที ซึ่ง ถ้าไปดูใน /etc/ssl/certs ก็จะเห็นว่า ไม่มี CA Certificate ของ “AlphaSSL CA” นี้อยู่ แต่จะมีของ “GlobalSign Root CA” อยู่ ทำไมเป็นอย่างนั้น ??? เพราะ CA เค้าต้องรักษา Root Certificate ของตนเองไว้ให้ดี จึงออกสิ่งที่เรียกว่า Intermediate CA ขึ้นมาอีกชั้นหนึ่ง แล้วแจกจ่ายให้กับผู้ที่ซื้อ Certificate ของเค้าอีกชั้นหนึ่ง คราวนี้ มาลองดูข้อมูลใน intermediate_ca.crt ว่ามีข้อมูลเป็นอย่างไร ด้วยคำสั่ง openssl x509 -in intermediate_ca.crt -text จะเห็นได้ว่า Issuer เป็น “GlobalSign Root CA” และ Subject เป็น “AlphaSSL CA”  จากเดิม Apache2 รุ่น < 2.4.8 ให้ใช้ Directive  “SSLCertificateChainFile” ในการกำหนด Intermediate CA ได้ แต่หลังจากนั้น ก็ให้ Obsolete เพราะ สามารถเอา 2 ไฟล์มาต่อกันได้ตามที่เขียนไว้ข้างต้น ในทางปฏิบัติ จริง ๆ แล้ว ก็ยังใช้ได้อยู่ แต่เป็น Obsolete ทางที่ดี ก็ควรจะปรับปรุงตามที่แนะนำไว้จะดีกว่า และ ถ้าใช้งานแค่ SSLCertificateFile (แบบที่มีแต่ Server Certificate) และ SSLCertificateKey (Server Private Key) นั้น เมื่อ

Read More »

การแก้ไข Certificate สำหรับ Lighttpd Web Server (Ubuntu 14.04 LTS)

“อยากแก้ Certificate บน Linux Lighttpd Server ทำอย่างไร” ในกรณีที่มีไฟล์ Certificate อยู่แล้วให้ทำการวางไฟล์ Certificate ใหม่ทับแล้วสั่ง Restart Apache Server เป็นอันเสร็จครับ (สำหรับการเปลี่ยน Certificate มีแค่ขั้นตอนนี้จบเลยครับ) ในกรณีที่ยังไม่ได้ติดตั้ง https รวมถึง Certificate ให้ทำการติดตั้ง https ก่อนดังนี้ sudo lighttpd-enable-mod ssl จากนั้นให้สั่ง Restart Apache ตามปกติ sudo service lighttpd restart ทำการวางไฟล์ Certificate ไว้ในตำแหน่งที่ Lighttpd สามารถเข้าถึงได้ ในกรณีที่ที่นี้ผมจะวางไว้ที่ /etc/cer ในกรณีที่ได้มาเป็นไฟล์ .cer และไฟล์ .key มาต้องการทำไฟล์ .pem สามารถพิมพ์คำสั่งดังนี้ sudo cat [file_cer_name].key [file_cer_name].crt > [file_cer_name].pem ทำการแก้ไขไฟล์ 10-ssl.conf ดังนี้ sudo vim /etc/lighttpd/conf-enabled/10-ssl.conf โดยส่วนที่ทำการเปลี่ยนแปลงจะทำการเปลี่ยน 1 บรรทัดดังนี้ ssl.pemfile = “/etc/cer/[file_cer_name].pem” จากนั้นให้สั่ง Restart Apache ตามปกติ sudo service lighttpd restart เป็นอันเสร็จครับ ง่ายมากจริง ๆ ครับ

Read More »

การแก้ไข Certificate สำหรับ Apache Web Server (Ubuntu 14.04 LTS)

“อยากแก้ Certificate บน Linux Apache Server ทำอย่างไร” ในกรณีที่มีไฟล์ Certificate อยู่แล้วให้ทำการวางไฟล์ Certificate ใหม่ทับแล้วสั่ง Restart Apache Server เป็นอันเสร็จครับ (สำหรับการเปลี่ยน Certificate มีแค่ขั้นตอนนี้จบเลยครับ) ในกรณีที่ยังไม่ได้ติดตั้ง https รวมถึง Certificate ให้ทำการติดตั้ง https ก่อนดังนี้ sudo a2enmod ssl sudo a2ensite default-ssl จากนั้นให้สั่ง Restart Apache ตามปกติ sudo service apache2 restart ทำการวางไฟล์ Certificate ไว้ในตำแหน่งที่ Apache สามารถเข้าถึงได้ ในกรณีที่ที่นี้ผมจะวางไว้ที่ /etc/apache2/cer ทำการแก้ไขไฟล์ default-ssl.conf ดังนี้ sudo vim /etc/apache2/sites-enabled/default-ssl.conf โดยส่วนที่ทำการเปลี่ยนแปลงจะทำการเปลี่ยน 3 บรรทัดดังนี้ SSLCertificateFile /etc/apache2/cer/[cer-file-name].crt SSLCertificateKeyFile /etc/apache2/cer/[cer-file-name].key SSLCertificateChainFile /etc/apache2/cer/[cer-file-name].ca-bundle จากนั้นให้สั่ง Restart Apache ตามปกติ sudo service apache2 restart เป็นอันเสร็จครับ ง่ายมากจริง ๆ ครับ

Read More »

การแก้ไข Certificate สำหรับ Windows Server 2008 / 2008 R2 / 2012 / 2012 R2

“อยากแก้ Certificate บน Windows Server 2008 ขึ้นไป ทำอย่างไร” เนื่องจาก Windows 2008 R2 ขึ้นไป มีการตั้งค่าคล้ายคลึงกันจึงขอยกตัวอย่างที่เป็น Windows Server 2008 R2 เท่านั้นครับ วิธีการเปลี่ยนให้เข้าไปยัง IIS ในเครื่อง Windows Server 2008 R2 เลือกชื่อเครื่องจากนั้นเลือกหัวข้อ Server Certificates ทางด้านขวาดังนี้ ในกรณีที่เคยมี Certificate เก่าอยู่แล้ว (ต้องการเปลี่ยน Certificate) ให้ดำเนินการ Remove ออกก่อนดังรูป จากนั้นทำการ Restart เครื่อง (ถ้ายังไม่เคยใส่ให้ข้ามขั้นตอนนี้ไปเลย) ในกรณีที่ยังไม่เคยมี Certificate ให้ทำการ Import ดังรูป จากนั้นทำการเลือก Web Site ที่ต้องการเปลี่ยน Certificate ในกรณีที่ยังไม่มี https ให้กด Add ในกรณีมีอยู่แล้วให้กด Edit จากนั้นเลือก SSL certificate ที่ต้องการใช้งาน จากนั้นกดปุ่ม OK เป็นอันเสร็จสิ้นขั้นตอนการเปลี่ยน Certificate ให้ล่าสุดและปลอดภัยครับ

Read More »

การแก้ไข Certificate สำหรับ Windows Server 2003 R2

“อยากแก้ Certificate บน Windows Server 2003 R2 ทำอย่างไร” วิธีการเปลี่ยนให้เข้าไปยัง IIS ในเครื่อง Windows Server 2003 R2 จากนั้นเลือกเครื่องกด + เข้าไปเรื่อย ๆ ในหัวข้อ Web Sites และเลือก Web Site ที่ใช้งาน คลิกขวาเลือก Properties เข้าไปยังหน้าจัดการ Certificate ดังรูป จากนั้นกด Next เพื่อทำการ Import Certificate เข้าสู่ IIS ในกรณีที่เคยมี Certificate เก่าอยู่แล้วจะต้องทำการ Remove Certificate เก่าออกก่อนดังนี้ (ถ้ายังไม่เคยมีให้ข้ามขั้นตอนนี้ไป) ในกรณีที่ยังไม่เคยมี Certificate ให้ดำเนินการ Import Certificate จากไฟล์ .pfx ดังนี้ เป็นอันเสร็จสิ้นวิธีเปลี่ยน Certificate สำหรับ Windows Server 2003 R2 ครับ

Read More »