Apache2 + SSL on Etch
จาก ความจำเป็นที่ต้องติดตั้ง Apache2 บน Etch เพื่อทดแทนระบบเก่าที่เป็น Redhat Enterprise 4 เรียกได้ว่า เลียนแบบพระเจ้าตากสินก็ว่าได้ (ทุบหม้อข้าวก่อนออกรบ) ที่ว่าอย่างนั้นก็เพราะว่า ลบตัวเก่าไปแล้ว ค่อยหาวิธีลงตัวใหม่ และแก้ปัญหาเอาดาบหน้า
- ดาบแรก ก็แทบแย่ ... ต้องติดตั้ง Oracle 9i client และ Compile PHP modules เพราะเครื่องนี้ต้องใช้ติดต่อกับ เครื่อง Server ที่เป็น Oracle 8 (เก๊ากึก ... ทำไงได้ระบบเขาเดินแล้ว จะเปลี่ยนใหม่คงยาก ... เรามีหน้าที่เป็นผู้ตามอย่างเดียว) ที่สำคัญคือ oracle instant client 10 ดันคุยกันไม่รู้เรื่องซะนี่ ไม่งั้นชีวิตคงยุ่งยากน้อยลง เลยต้องออกแรงกันยกใหญ่ ... เรื่องมันยาว ... อันนี้ไว้คราวหลังจะมาแนะนำวิธีติดตั้งอีกทีครับ เผื่อมีคนสนใจ ทำชีวิตตัวเองให้ยุ่งยากบ้าง
- ส่วนอีกดาบหนึ่งคือ ต้องการ SSL ในการเข้ารหัสข้อมูลระหว่างส่งข้อมูล Login หรือพูดง่าย ๆ คือ อยากได้
https://[hostname]
อันนี้ก็นึกว่า จะไม่ต้องออกแรงเท่าไรนัก แต่เอาเข้าจริง ตัวอย่างในอินเตอร์เน็ต สำหรับวิธีติดตั้ง Apache2 + SSL ทำตามได้แค่ครึ่งเดียว เพราะใน Etch ขาด Script บางตัวไป เลยเป็นเหตุให้ต้องเขียนบทความนี้
เริ่มกันเลยดีกว่า.....
- ติดตั้ง Apache2 + OpenSSL
# aptitude install apache2 opensslReading package lists... Done Building dependency tree... Done Reading extended state information . . . Preparing to replace apache2 2.2.3-3 (using .../apache2_2.2.3-3_all.deb) ... Unpacking replacement apache2 ... Preparing to replace openssl 0.9.8c-3 (using .../openssl_0.9.8c-3_i386.deb) ... Unpacking replacement openssl ... Setting up apache2 (2.2.3-3) ... Setting up openssl (0.9.8c-3) ...
ผ่านขั้นตอนนี้ เราก็ได้ Web Server ที่คอยบริการ HTML ได้แล้ว แต่จุดประสงค์เรายังลุล่วง ต้องไปต่อ
- เปิดใช้งาน SSL Module ใน Apache2
ก่อนจะเปิดใช้งาน เราทำการปรับแต่ง config ไฟล์เพื่อเตรียมพร้อมที่จะใชงาน SSL กันก่อน
เริ่มที่ เพิ่ม Port 443 (Default SSL port) เข้าไปใน/etc/apache2/ports.confโดยเพิ่มบรรทัดข้างล่างนี้ เข้าไป
Listen 443
หลังจากนั้นก็เปิดใช้งาน Module
# a2enmod sslModule ssl installed; run /etc/init.d/apache2 force-reload to enable.
หลังจากนี้ ก็สั่งตามที่เขาบอก
/etc/init.d/apache2 force-reload - สร้าง self-signed SSL Certificate (เขาบอกว่าใช้ทดสอบ .. แต่ของเราเอาใช้งานจริง)
เนื่องจากที่บอกไปข้างตนว่า มีบาง Script ที่ไม่มีใน Etch นั่นคือapache2-ssl-certificateทำให้ต้องไปค้นหาจากเว๊ป http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html
เพื่อใช้วิธี Manual ในการตั้งค่าง SSL key# cd /etc/apache2
# openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.keyหลังจากนั้น จะมีหน้าจอขึ้นมาให้กรอกข้อมูล และในส่วนของ CommonName ให้กรอกชื่อ Host อย่างเช่น
www.examples.com
- ตั้งค่า VirtualHost เพื่อให้สามารถใช้ https ได้
/etc/apache2/sites-available/defaultเปลี่ยนจาก
NameVirtualHost * <VirtualHost *>
เป็น
NameVirtualHost *:80 NameVirtualHost *:443 <VirtualHost *:80>
คัดลอกข้อความตามตัวอย่างข้างล่างนี้ และแปะไว้ล่างสุด
<VirtualHost *:80> ServerAdmin webmaster@localhost . . . </VirtualHost>แล้วแก้ไขเพิ่มเติมดังนี้
<VirtualHost *:443> ServerAdmin webmaster@localhost . . . SSLEngine on SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key </VirtualHost> - สั่ง Reload Apache2
# /etc/init.d/apache2 reloadReloading web server config... XXXX
- เข้า Web Browser และทำการทดสอบ
https://[hostname]
ถ้าทดสอบแล้ว ขึ้นหน้าต่างให้เลือกตอบตกลง และจะขึ้นรูปแม่กุญแจ ก็เป็นอันจบ ....
Apache2 + SSL พร้อมใช้งานแล้วครับผม
Re:
ขอบคุณมากครับ
แต่คุ้นๆว่า sarge ของผมมันก็ไม่แก้พวก config ให้นะครับ เปิดพอร์ททำ vhost อะไรพวกนี้ต้องทำเอง
ส่วนตรง apache2-ssl-cerificate ผมแอบโกง ไป cat /usr/sbin/apache2-ssl-certificate มาใช้ครับ :P
apache2-ssl-certificate missing on etch!!!
ครับอย่างที่ว่าครับ ผมไปค้นดูแล้วเห็นเฉพาะใน sarge ที่มีเจ้า apache2-ssl-certificate
แต่ดูแล้วเข้าไปที่ apache.org เห็นว่า FAQ พิมพ์ไม่กี่บรรทัด ก็เลยเอามาใช้เลยครับ ตอนแรกก็คิดจะดึงจาก sarge เหมือนกันครับผม
ถ้าผม เขียนอะไร ตุ่น ๆ ออกไป ช่วยแนะนำด้วยนะครับ :)
ปล. ใครที่เคยเซ็ต Real SSL Server ช่วยแนะนำบ้างก็ดีนะครับ อิอิ ....!
**********************
Key ID: D4CEFD37
Fingerprint: 1ED3 27F6 48C8 5C9D 4285 F24D D64E C0AF D4CE FD37
**********************









Recent comments
3 days 11 hours ago
4 days 3 hours ago
1 week 6 days ago
3 weeks 22 hours ago
4 weeks 6 hours ago
4 weeks 1 day ago
4 weeks 2 days ago
4 weeks 2 days ago
4 weeks 3 days ago
4 weeks 5 days ago