admin

apt-get กับ error during signature verification

posted on 01 Jul 2009 13:35 by pongtawat  in admin

บางครั้งเวลาเราสั่ง apt-get update จะเกิด warning เกี่ยวกับ signature แบบนี้:

W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used.GPG error: http://[...]: The following signatures were invalid: [...]

W: Failed to fetch [...] 

W: Some index files failed to download, they have been ignored, or old ones used instead.
W: You may want to run apt-get update to correct these problems

ส่วนมากปัญหาจะเกิดจาก repository ที่เราเพิ่มเข้ามาเอง

 วิธีแก้ไขก็ง่ายๆ

sudo rm -rf /var/lib/apt/lists/partial/*

แล้วก็สั่ง apt-get update ใหม่ ก็จะใช้ได้ทันที

ที่มา: Parijat’s Weblog

 

edit @ 1 Jul 2009 13:41:34 by pongtawat

Apache + SSL

posted on 25 May 2009 22:33 by pongtawat  in admin

จดไว้กันลืม เนื่องจากลืมไปแล้วรอบหนึ่ง

วิธีเปิด SSL บน Apache 2 บน Ubuntu

  1. ต้องสร้าง SSL Certificate/Key ก่อน วิธีสร้างแบบละเอียดไปดูได้ที่ mini-Howto หรือที่นี่ ส่วนวิธีสร้างแบบขี้เกียจอ่านก็ตามนี้เลย

    openssl genrsa -out server.key 1024
    openssl req -new -key server.key -out server.csr
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  2. อีกวิธีในการสร้าง Certificate คือใช้ SSLeay script ช่วย แต่จำ link ไม่ได้แล้ว
  3. เราจะได้ไฟล์มาสองไฟล์ server.key กับ server.crt ให้ copy ไปไว้ตามนี้

    server.crt -> /etc/ssl/certs
    server.key -> /etc/ssl/private
  4. enable SSL ใน apache

    a2enmod ssl
  5. แก้ Virtual host file ของเรา ให้เริ่มต้นไฟล์ด้วย

    NameVirtualHost *:443

    เพื่อจะได้ไม่ตีกับ Virtual host ปกติ และแก้ <VirtualHost *> ให้เป็น <VirtualHost *:443>
  6. เพิ่ม config ต่อไปนี้ลงใน Virtual Host ของเรา

    SSLEngine on
    SSLProtocol -all +TLSv1 +SSLv3
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
    SSLCipherSuite HIGH:MEDIUM
  7. restart Apache 2 เป็นอันเสร็จ

จริงๆ แล้วมีวิธีที่ง่ายกว่ามากๆ คือใช้ stunnel ครอบ Apache เอา

แต่ว่า stunnel ดันมีปัญหากับการใช้กับ subversion เนื่องจากเวลาที่สั่ง svn copy (เช่นเวลา branch, tag) subversion WebDAV จะใช้ full URL ทำให้ source URL (ผ่าน stunnel แล้วเลยเป็น http) กับ destination URL (ยังคงเป็น https) มันถูกมองเป็นคนละ site กัน มันเลยจะขึ้น Error 502 Bad Gateway เท่าที่ค้นหาดูก็ไม่เห็นมีวิธีแก้ไขเลย เลยทำให้ต้องมาใช้ SSL บน Apache แทน

หมายเหตุ

  1. การใช้งาน SSL นั้น "ไม่" สนับสนุนการทำ Name-based Virtual Host เนื่องจากข้อจำกัดของตัว protocol เอง (แต่ถ้าใช้ stunnel จะใช้ Virtual Host ได้ตามปกติ)
  2. เวลาสร้าง Certificate ถ้ามี subdomain สามารถใส่ * เพื่อให้ใช้กับทุก subdomain ได้ เช่น *.exteen.com

Reinstall GRUB

posted on 29 Apr 2009 20:13 by pongtawat  in admin

บางทีเวลา clone disk ไปๆ มาๆ ทำให้ GRUB boot loader หายไป

วิธีเอาคืนมาจริงๆ ก็น่าจะง่ายๆ เพราะว่า Ubuntu Live CD เวลาเข้าไปใน Recovery mode แล้วมันมีเมนูใหน reinstall GRUB ด้วย แต่เอาเข้าจริงบางทีมันก็ใช้ไม่ได้ซะงั้น

 วิธีแก้ไขก็คือใช้ Live CD boot เข้าไปที่ shell ของ root partition แล้วติดตั้ง GRUB ใหม่เอง

(ถ้าใช้ shell ของ installer ก็ต้อง export LD_LIBRARY_PATH=/target/lib ด้วย)

จากนั้นสั่ง

$ sudo grub

ตามด้วย

grub> find /boot/grub/stage1

เพื่อหาว่ามี grub boot loader อยู่ที่ไหนบ้าง ซึ่ง grub จะ list ออกมา สมมติว่าเป็น (hd0,0) เราก็สั่ง

grub> root (hd0,0)

เพื่อบอก grub ว่า root partition คือ (hd0,0) ตามด้วย

grub> setup (hd0)

เพื่อติดตั้ง grub ลงใน MBR ของ hd0

แล้วก็ออกจาก grub และ reboot ได้

grub> quit

ใน grub (hd0) หมายถึง harddisk ตัวแรก ส่วน (hd0,0) หมายถึง partition แรกของ harddisk ตัวแรก ซึ่งถ้าคิดแบบ device file ก็จะเป็น /dev/sda1 นั่นเอง

ที่มา: How to install GRUB from a live Ubuntu CD