Category: Linux (OS, shell script, etc)

  • How to reset root password CentOS 7.1

    • เข้า Single user mode โดย reboot แล้วเมื่อได้เมนูของ Grub ให้เลื่อนแถบสีไปยัง Kernel ที่ต้องการบูต (โดยปกติจะถูกเลือกไว้อยู่แล้ว) ให้กด e
      reset1จะได้หน้าจอดังนี้
      reset2สิ่งที่เราสนใจคือบรรทัดที่ขึ้นต้นว่า linux ซึ่งในบทความนี้คือ linux16 สำหรับ CentOS 7/7.1 x86_64 บนเมนบอร์ดที่ใช้ระบบ BIOS (อาจจะพบกับ linuxefi สำหรับเมนบอร์ดที่ใช้ระบบ UEFI) เมื่อหาเจอแล้วเลื่อน cursor ไปที่ ข้อความ ro
      reset2-1เปลี่ยน ro เป็น rw init=/sysroot/bin/sh
      reset3-1กดปุ่ม ctrl และปุ่ม x พร้อมกันเพื่อบูตระบบจะได้ดังภาพ
      reset4
    • พิมพ์คำสั่ง chroot  /sysroot
      reset5-1
    • พิมพ์ passwd เพื่อเปลี่ยนรหัสผ่านสำหรับ root
    • สร้างแฟ้ม autorelabel เพื่อปรับปรุงกฏของ selinux (ถึงแม้จะไม่ได้ใช้งาน selinux ก็ตาม เพื่อความไม่ประมาท) โดยคำสั่ง touch /.autorelabel
    • พิมพ์ exit เพื่อยกเลิก chroot
    • พิมพ์ reboot
      reset6-1
    • ระบบจะรีบูตสองรอบ อัตโนมัติเพื่อปรับปรุง selinux และไฟล์ autorelabel จะถูกลบอัตโนมัติ
    • ล็อคอินเข้าระบบด้วยผู้ใช้ root และ password ที่เปลี่ยนไป ลบแฟ้ม /.bash_history ทิ้งด้วยคำสั่ง rm /.bash_history (ถูกสร้างตอนออกจากระบบ chroot)
    • จบขอให้สนุกครับ

    อ้างอิงเพิ่มเติม
    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sec-Terminal_Menu_Editing_During_Boot.html#sec-Recovering_Root_Password

  • วิดีโอแนะนำการติดตั้ง PSU12-Sritrang Server โปรแกรมสำหรับการจัดการห้องบริการคอมพิวเตอร์ (cloning & control PC)

    วิดีโอแนะนำการติดตั้ง PSU12-Sritrang Server โปรแกรมสำหรับการจัดการห้องบริการคอมพิวเตอร์ (cloning & control PC)
    โดย  Wiboon Warasittichai on youtube

    01 PSU12-sritrang install (ตอนที่ 1 วิธีติดตั้ง)
    PSU12-sritrang-t01
    https://youtu.be/GAhZhGCciY0

    02 PSU12-sritrang cloning (ตอนที่ 2 วิธีโคลนนิ่งฮาร์ดดิสก์)
    PSU12-sritrang-t02
    https://youtu.be/CegdT_LtE4k

    03 PSU12-sritrang features (ตอนที่ 3 คุณสมบัติของแต่ละเมนู)
    PSU12-sritrang-t03
    https://youtu.be/Dw_wAyMa3vA

    04 PSU12-sritrang control (ตอนที่ 4 การควบคุมเครื่องวินโดวส์ send, restart, shutdown, wakeonlan)
    PSU12-sritrang-t04
    https://youtu.be/o801BZ9ye0Y

    05 PSU12-sritrang prnews (ตอนที่ 5 ประชาสัมพันธ์ข่าวด้วยภาพ เมื่อ boot from network)
    PSU12-sritrang-t05
    https://youtu.be/FA2X182oKXo

    06 PSU12-sritrang windows master (ตอนที่ 6 เตรียมวินโดวส์ต้นฉบับที่ติดตั้ง cygwin)
    PSU12-sritrang-t06
    https://youtu.be/9XkLQQ-niz4

    07 PSU12-sritrang windows computer name (ตอนที่ 7 เปลี่ยนชื่อเครื่อง)
    PSU12-sritrang-t07
    https://youtu.be/TuW8_Z2U7V4

    08 PSU12-sritrang windows pgina freeradius (ตอนที่ 8 ตั้ง login ใช้ RADIUS server)
    PSU12-sritrang-t08
    https://youtu.be/58Pw-dbxljw

    09 PSU12-sritrang windows partitions (ตอนที่ 9 เตรียมฮาร์ดดิสก์ของวินโดวส์ต้นฉบับ)
    PSU12-sritrang-t09
    https://youtu.be/jP4oSqRNvCo

    10 PSU12-sritrang linuxmint master (ตอนที่ 10 เตรียมลินุกซ์มินท์ต้นฉบับ)
    PSU12-sritrang-t10
    https://youtu.be/zpR0UQbTy_U

    11 PSU12-sritrang control linuxmint (ตอนที่ 11 การควบคุมเครื่องลินุกซ์มินท์)
    PSU12-sritrang-t11
    https://youtu.be/bVtfc4x-kKU

    12 PSU12-sritrang server backup (ตอนที่ 12 สำเนาไฟล์เก็บไว้)
    PSU12-sritrang-t12
    https://youtu.be/dA7-pWjy35I

    และมีเอกสารแนะนำอยู่ที่ http://opensource.psu.ac.th/PSU-Open-server

  • How to restore a system after accidentally removing all kernels?

    เหตุการณ์สมมติ… ทำไงดี??? เผลอรันคำสั่ง

    sudo apt-get remove --purge linux-image-3.19.0-*

    ได้ผลดังรูป (ดันกด y แล้ว enter อีกนะ)
    Capture1งานงอก …ลอง ls /boot เผื่อว่ายังมี Kernel เหลืออยู่บ้าง
    Capture2
    คุณพระ ไปหมดแล้ว… ตกใจ!!! reboot สิ… (กรั่ก ๆ)
    (หากไม่ตกใจจน reboot ไปซะก่อนสามารถพิมพ์คำสั่ง sudo apt-get install linux-image-generic ได้เลย)
    Capture3 เงิบ!!! เหลือแต่ Memory Test….

    แก้ไขโดยหาแผ่น Ubuntu Desktop ควรเป็นรุ่นเดียวกับรุ่นที่ติดตั้ง 12.04, 14.04 เป็นต้น (แต่แนะนำ 14.04 ถึงแม้จะกู้เครื่องที่เป็น 12.04)

    • เมื่อบูตให้เลือก Try Ubuntu รอจน Desktop ขึ้นมาเรียบร้อย เปิด Terminal ขึ้นมา (กด ctrl+alt+t)
    • พิมพ์คำสั่ง sudo fdisk /dev/sda -l (กรณีนี้รู้แน่ๆ ว่าติดตั้งบน /dev/sda)
      Capture4
    • จากรูปมีสอง patition ที่น่าจะติดตั้ง Ubuntu เอาไว้ คือ /dev/sda1 และ /dev/sda5 ถ้าใช้แผ่น 12.04 จะไม่สามารถ mount ส่วนของ /dev/sda5 ได้เพราะมองไม่เห็น patition ที่เป็น LVM ตั้งแต่แรก แต่แผ่น 14.04 มองเห็น
      Capture5
    • เมื่อคลิกที่ 103 GB Volume สามารถมองเห็นไฟล์ทั้งหมด
      Capture6
    • ลองเปิดไฟล์ใน etc/fstab ดูไฟล์ข้างในว่า partition อยู่อย่างไร
      Capture7
    • พบว่า /dev/sda1 เป็น boot และ /dev/mapper/ubuntu–vg-root เป็น / และ /dev/mapper/ubuntu–vg-swap_1 เป็น swap เราสนใจแค่ boot และ /
    • สั่ง mount patition ตามลำดับต่อไปนี้
      sudo mount /dev/mapper/ubuntu--vg-root /mnt
      sudo mount /dev/sda1 /mnt/boot
      sudo mount --bind /dev /mnt/dev
      sudo mount --bind /sys /mnt/sys
      sudo mount --bind /proc /mnt/proc
      Capture1111
    • สั่งคำ chroot ไปยัง /mnt สังเกตว่าหลังจากสั่งคำสั่ง chroot แล้ว prompt จะเปลี่ยนเป็น root@ubuntu:/#
      sudo chroot /mnt
      Capture9
    • ให้ตรวจสอบแฟ้ม /etc/apt/sources.list ว่าใช้ repository ไหนด้วย หากไม่ได้ใช้ th.archive.ubuntu.com หรือ mirror.psu.ac.th หรือ mirrors.psu.ac.th หรือ mirror1.ku.ac.th ให้เปลี่ยนเป็น th.archive.ubuntu.com จากนั้นทดสอบ nslookup th.archive.ubuntu.com สำหรับคนที่ resolve ได้ (เรายินดีด้วย) ข้ามข้อ ๑๐ ไปได้เลย
      Capture11
    • แก้ไขแฟ้ม /etc/hosts
      สำหรับเครื่องที่อยู่นอกมหาวิทยาลัยเพิ่มข้อความว่า
      192.100.77.186 th.archive.ubuntu.com
      สำหรับเครื่องที่อยู่ภายในมหาวิทยาลัยเพิ่มข้อความว่า
      192.168.101.34 th.archive.ubuntu.com
       
    • สั่ง
      apt  install linux-image-generic
      Capture1112
    • รอจนเสร็จได้ข้อความสุดท้ายประมาณว่า  Setting up linux-image-generic (… ให้แก้ไขไฟล์ /etc/hosts โดยเอาบรรทัดที่เพิ่มเข้าไปออก
    • พิมพ์คำสั่งต่อไปนี้ตามลำดับ
      exit
      sudo umount /mnt/proc /mnt/dev /mnt/sys /mnt/boot /mnt
      sudo reboot
    • เย่บูตได้..
    • จบขอให้สนุกครับ
  • Dialog cannot open tty-output

    dialog บน Oracle Enterprise Linux และ Ubuntu ไม่เหมือนกัน (ทำไมล่ะ…ไม่ทราบครับ)

    สร้างสคริปต์ชื่อ file.sh มีข้อความว่า

    #!/bin/bash
    FILE=$(dialog --ascii-lines --title "Delete a file" --stdout \
    --title "Please choose a file to delete" --fselect /tmp/ 14 48)
    echo $FILE

    บน Ubuntu รันได้ผลลัพธ์
    Ubuntu's Dialogแต่บน Oracle Enterprise Linux
    Oracle Enterprise LInux' Dialog-_-

    ต้องเปลี่ยนสคริปต์มีสองแบบ
    แบบแรก
    #!/bin/sh
    dialog --ascii-lines --title "Delete a file" --stdout \
    --title "Please choose a file to delete" --fselect /tmp/ 14 48 2>/tmp/file.tmp
    echo $(cat /tmp/file.tmp)

    แบบที่สอง
    #!/bin/bash
    FILE=$(dialog --ascii-lines --title "Delete a file" --stdout \
    --title "Please choose a file to delete" --fselect /tmp/ 14 48 2>&1>/dev/tty)
    echo $FILE

    ผลลัพธ์ของทั้งสองแบบให้ผลเหมือนกันคือ
    Oracle Enterprise Linux's Dialog2จบ..วันนี้ห้วนไปหน่อย ขอให้สนุกครับ

  • Shell Script : Grouping and Summation

    มี Log ขนาดใหญ่ แล้ว ต้องการจะวิเคราะห์ข้อมูลของนาทีที่ผ่านมา เลือกเฉพาะรูปแบบที่ต้องการด้วยคำสั่ง

    grep 'Apr 28 10:59' /var/log/mail.log | grep 'postfix/qmgr' |grep 'nrcpt=' |grep -v 'from=<>'

    ได้ผลมาประมาณนี้

    01

    ต้องการเอาข้อมูล X และ Y จากรูปแบบนี้ from=<X> และ nrcpt=Y ใช้ความรู้จาก Shell Script: Extract exact pattern from string ใช้คำสั่งต่อไปนี้

    grep 'Apr 28 10:59' /var/log/mail.log | grep 'postfix/qmgr' |grep 'nrcpt=' |grep -v 'from=<>'|sed -n 's/.*\sfrom=<\(.*\)>.*\snrcpt=\(.*\)\s(.*/\1:\2/p'

    ได้ผลมาประมาณนี้

    02

    ต้องการจับกลุ่มตาม คอลัมน์ที่ 1 แล้วหาผลรวมของคอลัมน์ที่ 2 ในแต่ละกลุ่ม ใช้คำสั่ง

    grep 'Apr 28 10:59' /var/log/mail.log | grep 'postfix/qmgr' |grep 'nrcpt=' |grep -v 'from=<>'|sed -n 's/.*\sfrom=<\(.*\)>.*\snrcpt=\(.*\)\s(.*/\1:\2/p' | awk 'BEGIN{FS=OFS=":"}{a[$1]+=$2}END{ for (i in a) print i,a[i]}'

    ได้ผลดังนี้

    03

    Reference:

    http://unix.stackexchange.com/questions/169215/group-by-and-sum-in-shell-script-without-awk

  • Shell Script : Extract exact pattern from string

    มี string ดังนี้ ในตัวแปร line

    line=’Apr 18 06:04:57 webmail squirrelmail: Message sent via webmail: by username.s (psu.ac.th) at 41.203.69.5 on 04/17/2015 23:04:57: Message-ID: 98f9739438686e127bcb8547fea7ed82.squirrel@webmail.psu.ac.th Total 9 recipients Message-ID: 98f9739438686e127bcb8547fea7ed82.squirrel@webmail.psu.ac.th’

    ต้องการค่าที่อยู่ระหว่าง Total … recipients

    ใช้คำสั่งนี้

    total=$(echo $line | sed -n ‘s/.*Total \([[:digit:]]*\) recipients.*/\1/p’)

    ตัวแปร $total จะมีค่า 9 ตามที่ต้องการ

    อธิบาย
    คำสั่ง
    sed -n ‘s/PATTERN/&/p’
    จะแสดงข้อความที่ตรงกับ Pattern เท่านั้น ไม่แสดงข้อความอย่างอื่่น

    Reference:
    http://www.grymoire.com/Unix/Sed.html#uh-15

  • เทคนิคการเพิ่ม user ในระบบ linux คราวละมากๆ

    มีผู้สนใจ linux ได้สอบถามเข้ามาทางอีเมลว่า จะเพิ่ม user ในระบบ linux คราวละมากๆ พอจะมี shell scripts ให้นำไปใช้งานหรือเปล่า ผมก็มีอยู่แล้ว แต่ก็ปรับแต่งเล็กน้อย

    shell script นี้มีดังนี้
    1. makeusername.sh เพื่อสร้างไฟล์รายชื่อตามจำนวนที่ต้องการ เลขเริ่มต้น min และสิ้นสุด max
    2. bulkuseradd.sh เพื่อเพิ่ม user และ password แบบ random และสร้างไฟล์ .csv เก็บ user:password นำไปพิมพ์แจก user ได้
    3. bulkuserdel.sh เพื่อลบ user

    ผมเขียนไว้ในเว็บไซต์ opensource.cc.psu.ac.th หัวข้อ เทคนิค+scripts (
    http://opensource.cc.psu.ac.th/เทคนิคการเพิ่ม_user_ในระบบ_linux_คราวละมากๆ)

  • Mozilla Thunderbird & Google Calendar

    1. ติดตั้ง extension 2 ตัวใน Thunderbird ได้แก่ Lightning และ Provider for Google Calendar ดังรูป

    Screenshot from 2015-01-12 13:55:01
    extension; lightning, Provider for Google Calender

    2. รีสตาร์ท Thunderbird จะพบปุ่ม Screenshot from 2015-01-12 13:47:30 อยู่ทางมุมบนขวา
    3. เข้า gmail.psu.ac.th ล็อคอินให้เรียบร้อย คลิก  Screenshot from 2015-01-12 14:25:17 แล้วเลือก Calendar
    4. ที่หน้า Calendar คลิก Screenshot from 2015-01-12 13:42:32 เลือก Setting

    5. คลิก Calenders ทีี่มุมซ้ายบน Screenshot from 2015-01-12 13:43:43

    6. เลือกปฏิทินที่ต้องการ

    Screenshot from 2015-01-12 13:44:58
    Available Calendar

    7. ตรวจสอบว่าใช่ปฏิทินที่ต้องการหรือไม่ดูที่ ช่อง Calender Owner ว่าเป็นอันเดียวกับ Username ที่ล็อคอินเข้า gmail

    Screenshot from 2015-01-12 13:45:26
    Calendar Owner

    8. เลื่อนดูด้านล่างในส่วนของ Private Address:

    Screenshot from 2015-01-12 13:45:49
    Private Address

    9. คลิกขวาที่ ICAL เลือก Copy Link Location

    Screenshot from 2015-01-12 13:47:1010. กลับมาที่ Thunderbird กดปุ่ม Screenshot from 2015-01-12 14:37:32 เพื่อเปิดปฏิทิน
    11. คลิกขวาที่ช่องว่างฝั่งซ้ายมือใต้คำว่า Calendar เลือก New Calendar

    Screenshot from 2015-01-12 13:48:07
    New Calendar

    12. ได้หน้าต่าง Create New Calendar เลือก Google Calendar กด Next

    Screenshot from 2015-01-12 13:56:5913. กด Ctrl-v เพื่อ paste URL ของปฏิทินที่ Copy มาในข้อก่อนหน้า

    Screenshot from 2015-01-12 13:57:2114. กด back 1 ครั้งแล้วกด Next ใหม่ (อันนี้น่าจะเป็นบักของ Ubuntu 14.10)

    Screenshot from 2015-01-12 13:57:3915. กด Next
    16. จะมีหน้าต่างเพื่อยืนยันตัวตนของ Google ปรากฎขึ้นมา

    Screenshot from 2015-01-12 14:00:1217.  กด Sign in จะได้อีกหน้าต่างดังรูป กดยอมรับ

    Screenshot from 2015-01-12 13:59:0518. จะมีหน้าให้เลือกปฏิทินที่ต้องการอีกครั้งกด Next

    Screenshot from 2015-01-12 13:59:30
    Lacate your calendar

    19. จะมีหน้าให้ ยืนยันตัวตน และหน้าเพื่อขอสิทธิ์การเข้าถึง อีกรอบกดให้ Sign in และยอมรับ

    20. กด Finish

    Screenshot from 2015-01-12 14:00:3721. ก็จะได้ปฏิทินเพิ่มมาตามต้องการ

    Screenshot from 2015-01-12 14:51:2822. ทั้งหมดนี้ทำบน Ubuntu 14.10 บน Windows ก็น่าจะทำเหมือนกัน
    23. สามารถเพิ่มลบเหตุการณ์ผ่าน Thunderbird ได้เลยไม่ต้องเข้าเว็บอีก …
    24. จากที่ทดสอบหนึ่ง Profile ของ Thunderbird สามารถมี Google Calendar ได้เพียง account เดียว
    25. ขอให้สนุกครับ

  • เปลี่ยน Certificate!?

    เนื่อง Certificate *.psu.ac.th จาก Comodo เดิมซึ่งกลายเป็น Cert. ที่จัดว่า WEAK แล้ว ทางเจ้าหน้าที่เครือข่ายจึงได้ขอ Cert. ใหม่มา ที่ Strong ขึ้น 🙂 ก็ต้องมานั่งเปลี่ยน Cert. ในเครื่องที่ให้บริการขั้นตอนดังนี้

    • Download Cert. ใหม่มาซึ่งต้องติดต่อขอไปที่ Net@dmin โดยผ่านช่องทางของ help.psu.ac.th
    • ไฟล์ที่จะโหลดมาใช้งานมีทั้งหมด 3 ไฟล์ได้แก่ STAR_psu_ac_th.ca-bundle, STAR_psu_ac_th.crt และ STAR_psu_ac_th_key.key เมื่อดาวน์โหลดมาเสร็จแล้วให้เอาไปแทนที่เก่าได้เลย ในตัวอย่างนี้จะเก็บไว้ที่ /etc/ssl/private
    • ทีนี้ มาดู config เก่าของ apache2

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerName bahamut.psu.ac.th
    ServerAdmin cc-server-admin@group.psu.ac.th
    DocumentRoot "/var/www/html"
    ErrorLog ${APACHE_LOG_DIR}/bahamut.ssl_error_log
    TransferLog ${APACHE_LOG_DIR}/bahamut.ssl_access_log
    LogLevel warn

    SSLEngine on
    SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt
    SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key
    SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle

    RewriteEngine On
    RewriteRule /avl https://licensing.psu.ac.th

    <Directory /var/www/licensing>
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
    </Directory>
    </VirtualHost>
    </IfModule>

      • จะเห็นว่าไฟล์ชื่อไม่ตรงอยู่ไฟล์หนึ่งคือ STAR_psu_ac_th.key ก็เปลี่ยนชื่อให้ตรง เป็นอันเสร็จ
      • แต่ … เนื่องจากเป็น Cert. ใหม่ เพื่อเพิ่มความแข็งแรง เจ้าหน้าที่เครือข่ายจึงได้กำหนด Passphrase ไว้ด้วย ต้องแก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf ในบรรทัดที่เขียนว่า SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-passphrase ให้แก้ /usr/share/apache2/ask-for-passphrase เป็น /etc/ssl/private/passphrase-script แล้วสร้างแฟ้ม /etc/ssl/private/passphrase-script มีข้อความว่า

    #!/bin/sh
    echo "passphrase ที่ได้รับแจ้งจาก Net@dmin"

      • chmod +x /etc/ssl/private/passphrase-script และทดสอบ script ด้วยว่าผลลัพธ์ที่ได้ตรงกับ passphrase ที่ Net@dmin แจ้งมา
      • restart apache2 ด้วยคำสั่ง sudo service apache2 restart ถ้า passphrase ที่ใส่ไว้ในแฟ้ม passphrase-script ถูกต้องจะ restart สำเร็จ
      • เป็นอันเสร็จ

    สิ่งที่ต้องแก้เพื่อให้ได้ A+ ในการทดสอบกับเว็บ https://www.ssllabs.com/ssltest/analyze.html

    • แก้ไขแฟ้ม /etc/apache2/mods-enabled/ssl.conf โดยแก้ไข/เพิ่ม ข้อความดังต่อไปนี้

    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:
    RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    SSLHonorCipherOrder on
    SSLProtocol all -SSLv3 -SSLv2
    SSLCompression off

    • sudo a2enmod headers เพื่อให้ module headers ของ apache2 ทำงาน
    • แก้ไขแฟ้มของไซต์ที่เปิด ssl ไว้ จากตัวอย่างนี้คือ /etc/apache2/sites-enabled/licensing-ssl.conf โดยเพิ่มข้อความว่า
      Header add Strict-Transport-Security "max-age=15768000;includeSubDomains"
    • ตัวอย่าง

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerName licensing.psu.ac.th
    ServerAdmin cc-server-admin@group.psu.ac.th
    DocumentRoot "/var/www/html/avl"
    ErrorLog ${APACHE_LOG_DIR}/licensing.ssl_error_log
    TransferLog ${APACHE_LOG_DIR}/licensing.ssl_access_log
    LogLevel warn
    SSLEngine on
    Header add Strict-Transport-Security "max-age=15768000;includeSubDomains"
    SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt
    SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key
    SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle
    </VirtualHost>
    </IfModule>

    • restart apache2 ด้วยคำสั่ง sudo service apache2 restart
    • ทั้งหมดนี้ทำ บน Ubuntu 14.04.1
    • ผลของการตั้งค่าตามนี้ จะทำให้ผู้ใช้ที่ยังใช้งาน Windows XP และ IE6 ไม่สามารถใช้งานเว็บไซต์ได้
    • จบ ขอให้สนุกครับ

    จุดสังเกตุเมื่อเปลี่ยน certificate แล้ว
    ก่อนเปลี่ยนบน Chrome เบราเซอร์
    https-sharedrive-chrome-before-update-cert

    หลังเปลี่ยนบน Chrome เบราเซอร์
    after

    ที่มา:

    http://www.bauer-power.net/2014/04/how-to-enable-http-strict-transport.html#.VJJ8pXtKW7A

    http://www.hackido.com/2009/10/quick-tip-auto-enter-password-for-your.html