Config SSL ใน Apache บน Linux ครับ (2009-04-07)
การสร้าง self-signed certificate ใน apache 2
OS ที่ใช้ Unix IBM AIX 5L
1. การ Install apache 2.x ขึ้นไปที่ สร้าง Mod so ให้ ใน Module
ให้ไป Download Apache httpd-2.0.47.tar.gz จากเว็บ http://httpd.apacheorg/download.cgi
จากนั้นทำการ Up load ไปไว้ที่ Server โดยสร้างโฟรเดอร์ชื่ออะไรก็ได้
# gzip -d httpd-2.x.x.tar.gz
# tar -xvf httpd-2.x.x.tar
จากนั้นมันจะได้โฟรเดอร httpd-2.x.x
เริ่มทำการติดตั้งโดยการใช้คำสั่ง configure ตามข้างล่างนะครับ แต่รอจนกว่าจะเสร็จประมาณ 45 นาทีถึง หนึ่งชั่วโมง นะครับ
#./configure --prefix=/usr/local/apache
--enable-ssl --enable-ssl=shared --with-ssl=/usr/local/openssl
--enable-status --enable-status=shared
--enable-module=so --enable-dso
# make
#make install
เมื่อติดตั้งเสร็จและไม่มีปัญหาใดๆ ก็ลองเข้าไปที่ /usr/local/apache และเข้าไปแก้ไขไฟล์ httpd.conf ที่ /usr/local/apache/conf
Listen webtest:80
user nobody
Group nobody
ServerName webtest:80
จากนั้นลองทดสอบ การทำงานของเว็บเซิรฟเวอร์
# ./apachectl -version
Server version: Apache/2.2.2
Server built: Jul 26 2006 12:34:23
# ./apachectl configtest
Syntax OK
#./apachectl start
ตรวจสอบว่า Apache ทำงานได้หรือไม่
# ps -ef|grep httpd
nobody 15762 49206 0 15:11:22 - 0:00 /usr/local1/apache/bin/httpd -k start
nobody 29750 49206 0 15:11:21 - 0:00 /usr/local1/apache/bin/httpd -k start
nobody 37110 49206 0 15:11:22 - 0:00 /usr/local1/apache/bin/httpd -k start
root 49206 1 0 15:11:06 - 0:00 /usr/local1/apache/bin/httpd -k start
nobody 50458 49206 0 15:11:51 - 0:00 /usr/local1/apache/bin/httpd -k start
หลังจากติดตั้งและทำการทดสอบระบบโดยไม่มีการ error ใดๆ ก็ลองเข้าเว็บดูนะครับ โดยเข้าผ่านเครื่อง PC อีกเครื่องหนึ่งแลัว
ใส่ชื่อเว็บหรือหมายเลขไอพีที่กำหนดไว้ ถ้าผ่านจะขึ้น It Work แสดงว่าเรียบร้อยใช้งานได้
ต่อไปก็เป็นการสร้าง Certificate เพื่อรับรองความปลอดภัย เมื่อทดสอบผ่านแล้วก็ ทำการ ปิด Server
#./apachectl stop
และก่อนที่จะสร้างได้เราต้องมีโปรแกรมที่สามารถสร้าง Certificate เรียกว่า Openssl
ต้องไป Download openssl-0.9.6j.tar.gz ได้ที่นี่ครับ http://www.openssl.org
หลังจากนั้นก็ Upload ไปไว้ที่ Server โดยสร้างโฟรเดอร์ชื่ออะไรก็ได้
# gunzip openssl-0.9.x.tar.gz
# tar -xvf openssl-0.9.x.tar
จากนั้นมันจะได้โฟรเดอร openssl-0.9.x.tar ทำการ Configure ใช้เวลาประมาณ ครึ่งชั่วโมง
# ./config --prefix=/usr/local/openssl
# make
# make install
ถ้าทุกอย่างเรียบร้อยและไม่ติดปัญหาหรือ Error ใดๆ ก็เริ่มทำการสร้าง
แต่ก่อนที่จะสร้างควรตรวจเช็คก่อนว่า Path Openssl อยู่ถูกต้องหรือไม่ มีไฟล์หรือไม่ และมีการเพิ่มเข้าไปที่ .Profile ของระบบหรือไม่
จากนั้นก็ลองทดสอบโดยเพิ่ม openssl
#openssl
OpenSSL> version
OpenSSL 0.9.x 11 Oct 2005
OpenSSL>exit
#
ถ้าเรียกไม่ได้ให้เช็คที่ .Profile และใส่ Path ให้ถูกต้องโดยจะต้องเรียกไฟล์ที่ชื่อ openssl
เริ่มต้นการสร้าง self-signed certificate ให้กับเว็บไซต์
ในที่นี่ผมจะเข้าไปสร้างโฟรเดอร์ที่เก็บไฟล์ SSL อยู่ภายใต้ Apache ดังนี้
#pwd
#/usr/local/apache/conf/ssl/
#openssl
openssl> genrsa -des3 -out server.key 1024
openssl> rsa -in server.key -out server.key
openssl>openssl req -new -key server.key -out server.csr
ใน ขั้นตอนนี้จะมีการถามให้ใส่รายละเอียด เช่น ชื่อ ที่อยู่ อีเมล ที่อยู่เว็บ ซึ่งเป็นสิ่งสำคัญที่จะต้องตรงกับชื่อ hostname ที่เราตั้งตอนแรก
Common Name (eg, your name or your server's hostname) []: webtest
openssl> x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
เมื่อ สร้างเรียบร้อยก็ exit ออกไปและลองตรวจสอบดูว่ามีไฟล์ที่ชื่อ erver.csr server.key server.crt อยู่หรือไม่ถ้ามีอยู๋ก็ถูกต้อง
จากนั้นให้เข้าไปแก้ไฟล์ httpd.conf ใน /usr/local/apache/conf ดังนี้ครับ
ServerName webtest:443
SSLEngine On
SSLCertificateFile /usr/local/apache/conf/ssl/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl/server.key
ทีนี่ก็เปิด บริการเว็บโดยการ Start apache
#./apachectl start
แต่ถ้าจะเอาไปใช้งานจริงอาจจะต้องประยุกต์เพิ่มเติมบ้างนะครับ
โชคดีครับพี่น้อง
|