Ubuntu 7.04 : วิธีสร้าง Self-Signed Certs สำหรับเว็ปไซต์

Posted by AnnoMundi on June 18, 2007

วิธีการสร้าง Self-Signed Certificate สำหรับเว็ปไซต์บนเครื่องที่ใช้ Ubuntu
Feisty Fawn สำหรับบทความนี้ผมขอไม่กล่าวถึงการลง Apache2, PHP5 และ
MySQL นะครับ จะกล่าวถึงเฉพาะการสร้าง Self-Signed Certificate เท่านั้น

  1. ถ้า Apache ที่ลงไว้แต่ยังไม่ได้ Enable mod_ssl ก็ให้เปิดใช้งานด้วยคำสั่ง
    sudo a2enmod ssl
  2. เริ่มด้วยการสร้าง Private Key สำหรับเครื่องเซิร์ฟเวอร์ หรือเครื่องที่เรารัน
    เว็ปเซิร์ฟเวอร์

    $ sudo openssl genrsa -des3 -out server.key 1024

    เมื่อโปรแกรมให้เราใส่ pass phrase ซึ่งเราจะใส่หรือไม่ใส่ก็ได้

  3. จากนั้นก็สร้าง Certificate File ขี้นมาด้วยคำสั่ง
    $ sudo openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt

    ซึ่งมันจะถาม Pass Phrase ที่เราตั้งไว้ในขึ้นตอนที่แล้วและให้เราใส่ชื่อโดเมนที่
    เราต้องการจะใช้งาน SSL ตอนที่โปรแกรมให้เราใส่ Common Name ในที่นี้ผม
    จะใส่เป็น *.mydomainname.com เผื่อไว้ใช้กับsubdomain ได้ด้วย

  4. ให้ทำการสร้างไดเร็กทอรี่ /etc/apache2/ssl แล้วคัดลอกไฟล์ทั้งสองไปยัง
    ไดเร็กทอรี่ที่สร้างขึ้น

    $ sudo mkdir /etc/apache2/ssl
    $ sudo mv *.crt /etc/apache2/ssl
    $ sudo mv *.key /etc/apache2/ssl
    $ sudo chmod 400 /etc/apache2/ssl/*.key
  5. ถ้าในขั้นตอนแรกเรากำหนด Pass Phrase ไปด้วย ทุกครั้งที่ทำการ
    restart apache จะมีการถาม pass phrase ทุกครั้ง ดังนั้นเพื่อให้เราไม่ต้องเสีย
    เวลาใส่ pass pharse ก็ให้้เราสร้างไฟล์ /etc/apache2/ssl/password.sh
    ขึ้นมา แล้วแก้ไขไฟล์โดยพิมพ์คำสั่งตามด้านล่างลงไป แต่ให้เปลี่ยน password
    เป็น pass pharse ที่เราได้ระบุไว้นะครับ

    #!/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 ที่เราสร้างไว้แทน

  6. จากนั้นให้เราทำการแก้ไขไฟล์ /etc/apache2/ports.conf ตามด้านล่าง
    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

บทความที่เกี่ยวข้อง

Trackbacks

Use this link to trackback from your own site.

Comments

Leave a response

แสดงความคิดเห็นของคุณ
  1. (required)
  2. (valid email required)
  3. (required)
  4. ส่งเป็น:
  5. Captcha
 

cforms contact form by delicious:days