by pongtawat
- ต้องสร้าง SSL Certificate/Key ก่อน วิธีสร้างแบบละเอียดไปดูได้ที่ mini-Howto หรือที่นี่ ส่วนวิธีสร้างแบบขี้เกียจอ่านก็ตามนี้เลย
openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt - อีกวิธีในการสร้าง Certificate คือใช้ SSLeay script ช่วย แต่จำ link ไม่ได้แล้ว
- เราจะได้ไฟล์มาสองไฟล์ server.key กับ server.crt ให้ copy ไปไว้ตามนี้
server.crt -> /etc/ssl/certs
server.key -> /etc/ssl/private - enable SSL ใน apache
a2enmod ssl - แก้ Virtual host file ของเรา ให้เริ่มต้นไฟล์ด้วย
NameVirtualHost *:443
เพื่อจะได้ไม่ตีกับ Virtual host ปกติ และแก้ <VirtualHost *> ให้เป็น <VirtualHost *:443> - เพิ่ม config ต่อไปนี้ลงใน Virtual Host ของเรา
SSLEngine on
SSLProtocol -all +TLSv1 +SSLv3
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
SSLCipherSuite HIGH:MEDIUM - restart Apache 2 เป็นอันเสร็จ
จริงๆ แล้วมีวิธีที่ง่ายกว่ามากๆ คือใช้ stunnel ครอบ Apache เอา
แต่ว่า stunnel ดันมีปัญหากับการใช้กับ subversion เนื่องจากเวลาที่สั่ง svn copy (เช่นเวลา branch, tag) subversion WebDAV จะใช้ full URL ทำให้ source URL (ผ่าน stunnel แล้วเลยเป็น http) กับ destination URL (ยังคงเป็น https) มันถูกมองเป็นคนละ site กัน มันเลยจะขึ้น Error 502 Bad Gateway เท่าที่ค้นหาดูก็ไม่เห็นมีวิธีแก้ไขเลย เลยทำให้ต้องมาใช้ SSL บน Apache แทน
หมายเหตุ
- การใช้งาน SSL นั้น "ไม่" สนับสนุนการทำ Name-based Virtual Host เนื่องจากข้อจำกัดของตัว protocol เอง (แต่ถ้าใช้ stunnel จะใช้ Virtual Host ได้ตามปกติ)
- เวลาสร้าง Certificate ถ้ามี subdomain สามารถใส่ * เพื่อให้ใช้กับทุก subdomain ได้ เช่น *.exteen.com
สำหรับ Apache บน Windows ดูจาก Link นี้ครับ http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=9252
ไม่มีความคิดเห็น:
แสดงความคิดเห็น