18 Jun
Posted by: AnnoMundi in: Linux :Howto & Tips
วิธีการสร้าง Self-Signed Certificate สำหรับเว็ปไซต์บนเครื่องที่ใช้ Ubuntu
Feisty Fawn สำหรับบทความนี้ผมขอไม่กล่าวถึงการลง Apache2, PHP5 และ
MySQL นะครับ จะกล่าวถึงเฉพาะการสร้าง Self-Signed Certificate เท่านั้น
sudo a2enmod ssl
$ sudo openssl genrsa -des3 -out server.key 1024
เมื่อโปรแกรมให้เราใส่ pass phrase ซึ่งเราจะใส่หรือไม่ใส่ก็ได้
$ sudo openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt
ซึ่งมันจะถาม Pass Phrase ที่เราตั้งไว้ในขึ้นตอนที่แล้วและให้เราใส่ชื่อโดเมนที่
เราต้องการจะใช้งาน SSL ตอนที่โปรแกรมให้เราใส่ Common Name ในที่นี้ผม
จะใส่เป็น *.mydomainname.com เผื่อไว้ใช้กับsubdomain ได้ด้วย
$ sudo mkdir /etc/apache2/ssl
$ sudo mv *.crt /etc/apache2/ssl
$ sudo mv *.key /etc/apache2/ssl
$ sudo chmod 400 /etc/apache2/ssl/*.key
#!/bin/bash
echo "password";
จากนั้นก็ให้แก้ไขไฟล์ /etc/apache2/mods-enabled/ssl.conf ให้มองหา
บรรทัดตามด้านล่างนี้
SSLPassPhraseDialog builtin
แล้วแก้เป็น
SSLPassPhraseDialog exec:/etc/apache2/ssl/password.sh
ที่ทำแบบนี้เพื่อแทนที่ apache จะรอถาม pass pharse ทุกครั้งที่ start/restart
ก็ให้มันไปรัน script ที่เราสร้างไว้แทน
Listen 80
Listen 443
แล้วจึงแก้ไขไฟล์คอนฟิกของเว็ปไซต์ในที่นี้ของผมจะอยู่รวมกันในไฟล์
/etc/apache2/sites-available/default ซึ่งบางคนอาจแยกคอนฟิกของแต่ล่ะ
เว็ปเป็นไฟลๆ์แยกกัน ก็ให้เปิดแก้ไขคอนฟิกเว็ปที่ต้องการใช้งาน SSL โดยแก้ไข
คอนฟิกดังนี้
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
...
</VirtualHost>
และในตอนต้นไฟล์ /etc/apache2/sites-available/default ต้องมีคำสั่งตาม
ด้านล่างด้วยนะครับ
NameVirtualHost *:80 NameVirtualHost *:443
จากนั้นก็สั่ง restart apache ได้เลย
sudo /etc/init.d/apache2 restart
เสร็จแล้ว เราก็จะสามารทดสอบและพัฒนาเว็ปซึ่งจำเป็นต้องมีส่วนที่ใช้งานผ่าน SSL ได้
เอกสารอ้างอิง : Creating Self-Signed Certs on Apache 2.2
Leave a reply