|
9.79 ติดตั้ง SSL (Secure Sockets Layer)
: ปกป้องรหัสของผู้ใช้เมื่อเชื่อมต่อกับเครื่องบริการ
SSL (Secure Sockets Layer) เป็นระบบรักษาความปลอดภัยในเว็บไซต์รูปแบบหนึ่งที่เป็นที่นิยมกัน ซึ่ง SSL จะใช้เพื่อเข้ารหัส (encrypt) ข้อมูลตัวมันเอง ใช้เพียงแต่การตรวจสอบหรือยืนยันได้เฉพาะฝั่งผู้ขายเท่านั้นว่ามีตัวตนจริง ไม่สามารถยืนยันตัวผู้ซื้อได้ ซึ่ง SSL จะมีความเร็วในการทำงานมากกว่า PKI ประมาณ 10 - 100 เท่า และยังสามารถใช้งานกับบราวเซอร์ต่าง ๆ ได้ การทำงานจะเริ่มจาก ผู้ใช้งานเริ่มกระบวนการติดต่อไปยังเว็บเซิร์ฟเวอร์ที่มีระบบ SSL หลังจากนั้นเซิร์ฟเวอร์จะส่งใบรับรอง (Server Certificate) กลับมาพร้อมกับการเข้ารหัสด้วยกุญแจสาธารณะ (Public Key) ของเซิร์ฟเวอร์ จากนั้นคอมพิวเตอร์ของฝั่งผู้รับจะทำการตรวจสอบใบรับรองอีกที เพื่อตรวจสอบตัวตนของฝั่งผู้ค้า หลังจากนั้นจะทำการสร้างกุญแจสมมาตร (Symmetric Key) โดยการสุ่มและทำการเข้ารหัสกูญแจสมมาตรด้วยกุญแจสาธารณะของเซิร์ฟเวอร์ที่ได้รับมาเพื่อส่งกลับไปยังเซิร์ฟเวอร์ เมื่อได้รับแล้วก็จะทำการถอดรหัสด้วยกุญแจส่วนตัว (Private Key) ก็จะได้กุญแจสมมาตรของลูกค้ามาใช้ในการติดต่อสื่อสาร เพื่อให้การติดต่อสื่อสารถึงกันได้อย่างปลอดภัย
อ.อิทธิพล เพื่อนของผมทดสอบใช้โปรแกรม sniffer ในเครือข่ายของเรา ทำให้ผมต้องศึกษา SSL อย่างจริงจัง แต่เครื่องเมล์ของผมใช้ Fedora ซึ่งมีเอกสารเกี่ยวกับรุ่นนี้ไม่มากนัก จึงใช้เวลา Config อยู่นานกว่าจะลงตัว Port ของ SSL คือ 443
ตัวอย่างคำสั่ง
#rpm -q httpd
#rpm -ql openssl
#rpm -q mod_ssl
#rpm -qa |grep ssl
#yum -y install httpd
#yum -y install mod_ssl
#find / -name openssl.cnf
#openssl version -a
#openssl help
#openssl speed
#ln -s /etc/pki/tls/certs/Makefile /etc/httpd/conf/
#cd /etc/httpd/conf
#make server.key
#/usr/bin/openssl rsa -in server.key -out server.key
#make server.csr
#/usr/bin/openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
#chmod 400 server.*
#vi /etc/httpd/conf.d/ssl.conf
old #DocumentRoot "/var/www/html"
new DocumentRoot "/var/www/html"
old #ServerName www.example.com:443
new ServerName yn1.yonok.ac.th:443
old SSLCertificateFile /etc/pki/tls/certs/localhost.crt
new SSLCertificateFile /etc/httpd/conf/server.crt
old SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
new SSLCertificateKeyFile /etc/httpd/conf/server.key
#vi /etc/sysconfig/selinux
old SELINUX=enforcing เพื่อสั่งเปิด
new SELINUX=disabled เพื่อสั่งปิด
#vi /etc/httpd/conf/httpd.conf
<VirtualHost 202.29.78.1:443>
DocumentRoot /var/www/html/ssl
ServerName www.isinthia.com:443
SSLEngine on
SSLCertificateFile /etc/httpd/conf/server.crt
SSLCertificateKeyFile /etc/httpd/conf/server.key
</VirtualHost>
#/etc/init.d/httpd restart
เว็บเพจที่พบข้อมูลเกี่ยวกับ SSL
*** http://www.linux-sxs.org/internet_serving/apache2.html ละเอียดชัดเจน
*** http://forum.modoeye.com/module30-32.html (สุดยอดจริง ๆ )
*** http://www.madboa.com/geek/openssl/
*** http://fedoracore4.com/SSLv-domain.php
*** http://www.macmil.co.jp/macmil/linux017.htm (core 3 และ core 4)
http://www.zend.com/tips/tips.php?id=152&single=1
http://www.linuxhelp.net/guides/apachessl/
http://www.moph.go.th/helpdesk/squid/linux-01.php
http://nuke.thaihealth.net/article86.html
http://bloggang.com/mainblog.php?id=naigod&month=07-12-2005&group=4&blog=1
http://itweb.lib.ru.ac.th/webboard/00193.html
http://www.witty.net/books/apache.html
http://www.ca.tot.co.th/knowledge_ssl.html (ความหมายไม่ยาว)
http://thaicert.nectec.or.th/paper/unix_linux/apache_chklist.php (เป็นเพียง check list)
http://www.acisonline.net/article_prinya_eweek_151147.htm (ช่องโหว่ของ SSL)
http://www.phpconcept.com/index.php?option=content&task=view&id=12&Itemid=28 (ติดตั้งหลายอย่าง)
http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x246.html
http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x195.html
http://www.stanton.dtcc.edu/stanton/cs/admin/notes/ssl/
http://bruno.vernay.free.fr/wp/index.php?tag=fedora
http://www.joreybump.com/code/howto/smtpauth.html (SSL for SMTP)
http://silas.psfc.mit.edu/tp41FC4.html (Thinkpad และ Fedora Core 4)
http://fedorasrv.com/postfix-tls.shtml
http://www.esensualstudios.com/linux.php
http://www.shitomi.jp/server/apache.html
http://www.trdlo.cz/webserver.php
http://www.scalix.com/community/viewtopic.php?t=1634
http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html
http://www.tc.umn.edu/~brams006/selfsign.html
http://www.apache-ssl.org/httpd.conf.example
http://www.a-yu.com/net/apache07.html
http://www.aconus.com/~oyaji/www/apache_linux_ssl.htm
http://www.mail-archive.com/modssl-users@modssl.org/msg17111.html
|