Author Topic: Directadmin (DA) on freebsd + ssl cert for domain on directadmin  (Read 9079 times)

golfreeze

  • Administrator
  • Hero Member
  • *****
  • Posts: 2145
    • View Profile
    • นั่งสมาธิ สติปัฏฐานสี่ พาเที่ยววัด แนะนำวัด แจกcd ธรรมะฟรี
    • Email
« Last Edit: กรกฎาคม 10, 2014, 02:51:50 PM by golfreeze »

golfreeze

  • Administrator
  • Hero Member
  • *****
  • Posts: 2145
    • View Profile
    • นั่งสมาธิ สติปัฏฐานสี่ พาเที่ยววัด แนะนำวัด แจกcd ธรรมะฟรี
    • Email
Re: Directadmin (DA) on freebsd
« Reply #1 on: กรกฎาคม 10, 2014, 02:51:26 PM »
การ generate certificate SSL เพื่อใช้งานกับ domain ที่ใช้งานตัว control panel "DirectAdmin"
### การสร้าง .csr , .key
1. เราต้องทำการ create ssl cert ก่อน เริ่มจาก generate .key แล้วสร้าง .csr
2. submit เข้าไปที่ SSL Provider เพื่อให้ generate .crt มา

ในการ generate สร้าง .csr , .key ดูรายละเอียดเพิ่มเติมได้ที่นี่ นะครับ => http://golfreeze.packetlove.com/smileboard/index.php?topic=48.0

### เพิ่ม IP ใหม่บน Directadmin
1.เราต้องทำการหา IP global ที่ว่างก่อน ต่อจากนั้น assign ip นั้น ให้ไปใช้งานกับ Reseller id นั้นก่อน
2. เสร็จแล้วเข้าไปที่ reseller account นั้นๆแล้ว ทำการ assign IP เพื่อให้กับ user ที่เราต้องการ
3. เสร็จแล้วเข้าไป Enable "SSL" option ในส่วนของ Admin หรือ Reseller.
4. ทำการเชคไฟล์ /usr/local/directadmin/data/users/domain/httpd.conf

จะมี

<VirtualHost 111.xxx.yyy.zzz:443 >
        SSLEngine on
        SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
        SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key

        ServerName www.domain.com
        ServerAlias www.domain.com domainc.om
        ServerAdmin webmaster@domain.com
        DocumentRoot /home/reseller/domains/domain/private_html
        ScriptAlias /cgi-bin/ /home/reseller/domains/domain/public_html/cgi-bin/
        UseCanonicalName OFF
        <IfModule !mod_ruid2.c>
                SuexecUserGroup domain domain
        </IfModule>
        CustomLog /var/log/httpd/domains/domain.com.bytes bytes
        CustomLog /var/log/httpd/domains/domain.com.log combined
        ErrorLog /var/log/httpd/domains/domain.com.error.log
        <Directory /home/reseller/domains/domain.com/private_html>
                php_admin_flag safe_mode OFF
                php_admin_flag engine ON
                php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f reseller@domain.com'
                php_admin_value mail.log /home/reseller/.php/php-mail.log
                php_admin_value open_basedir /home/reseller/:/tmp:/var/tmp:/usr/local/lib/php/
        </Directory>
</VirtualHost>
 
แล้วก็แก้ไขในส่วนที่เป็น สีแดง ปรับให้ใช้งานกับ .crt และ .key  ที่เราได้เตรียมไว้แล้ว

หลังจากเสร็จแล้วก็ทำการ restart httpd ครับ
แล้วลองเข้าใช้งานเว็บดูครับ

https://www.domain.com ก็จะเห็น certificate ทำงานปกติ

เพิ่มเติมอีกนิด เราสามารถหลอกตัว DA โดยการปรับ ip ของ user กลับเป็นตัวเดิมครับ
ก็จะสามารถลดการใช้งาน IP ไปได้ครับผม
« Last Edit: กรกฎาคม 10, 2014, 02:54:37 PM by golfreeze »

golfreeze

  • Administrator
  • Hero Member
  • *****
  • Posts: 2145
    • View Profile
    • นั่งสมาธิ สติปัฏฐานสี่ พาเที่ยววัด แนะนำวัด แจกcd ธรรมะฟรี
    • Email
Re: Directadmin (DA) on freebsd + ssl cert for domain on directadmin
« Reply #2 on: กรกฎาคม 19, 2014, 12:48:02 PM »
ในกรณีถ้าเราต้องการเพิ่มความปลอดภัย ให้กับระบบ โดยการเข้ารหัสข้อมูล username และ password ขณะทำการ login directadmin นั้น
ก็ใช้ตัว ssl เข้ามาช่วยได้ครับดังนี้

#ทำการสร้าง self certificate ก่อน
#/usr/bin/openssl req -x509 -newkey rsa:2048 -keyout /usr/local/directadmin/conf/cakey.pem -out /usr/local/directadmin/conf/cacert.pem -days 9000 -nodes

#ทำการเปลี่ยนสิทธิ์ของไฟล์ cert
#chown diradmin:diradmin /usr/local/directadmin/conf/cakey.pem
#chmod 400 /usr/local/directadmin/conf/cakey.pem

เข้าไปปรับ configure directadmin.conf ที่
#cd /usr/local/directadmin/conf
#vi directadmin.conf

เปลี่ยนจาก
SSL=0  ##(ค่า default)
เป็น
SSL=1

แล้วเชคที่ point certificate path ว่าถูกต้องหรือเปล่า
cacert=/usr/local/directadmin/conf/cacert.pem
cakey=/usr/local/directadmin/conf/cakey.pem

ถ้าเรียบร้อยแล้วก็ทำการ Restart service directadmin 1 ครั้ง
##Base on CentOS , RH, Debian,Ubuntu
#/etc/init.d/directadmin  restart

##Base on FreeBSD
#/usr/local/etc/rc.d/directadmin restart

เสร็จแล้วก็ทำการ Login ผ่าน https: ดูครับ
https://www.yourdomain.com:2222

ก็จะสามารถใช้งานผ่าน https: ได้ครับผม : )