1.ถอด cloudflare ก่อน
โดยไม่ต้องไปยุ่งกับ cloudflare แค่ไปเปลี่ยน DNS ของ domain (โดยใช้ DNS ของ hosting)
2. รอให้ DNS อัพเดท (จะมี อีเมลแจ้งเตือน)
3. gen key ssl ที่ directadmin
บางครั้ง gen ไม่ผ่าน เพราะ มีการ gen เกินกำหนดครั้งที่กำหนด
(อาจจะเป็นคิดรวม เว็บอื่นด้วยที่อยู่ใน host) ให้ genใหม่ในอีกวัน
บางครั้งเกิดจาก name sever ยังไม่อัพเดทหลังเปลี่ยน cloudflare
ให้รออีเมลแจ้งบอกก่อนว่า อัพเดทแล้ว
ตอนทำ Mon, Sep 24, 11:00 AM (21 hours ago) แต่ทำแล้วไม่ได้เพราะ name sever ยังไม่อัพเดท
อัพเดท name server แล้ว Mon, Sep 24, 4:47 PM (15 hours ago) ทำได้แล้ว
เมื่อ gen key ssl สำเร็จแล้ว
(ติดตั้ง SSL (https) ฟรี ด้วย Let’s Encrypt)
+https://www.hostinglotus.com/hosting/knowledgebase/145/-Certificate-SSL-Free–Letandsharp039-Encrypt–DirectAdmin-.html
ต่อไปเป็นการแก้ไขข้อมูลเว็บ
1.ถ้าเป็นเว็บ html ให้ Link ใน ทุกไฟล์ จาก http เป็น https แล้วอัพโหลดไปทับ
ใช้โปรแกรม search and replace
http://cymiz.com –> https://www.cymiz.com
http://www.cymiz.com –> https://www.cymiz.com
2.ถ้าเป็น wordpress
เข้าไป dashboard แก้ setting > general
WordPress Address (URL) และ Site Address (URL)
เมื่อกด save มันจะ logout ให้ login ใหม่แล้วไปแก้ข้อมูล (database) เปลี่ยน link ที่อาจมีการโพสท์ในส่วนของเนื้อหา ให้เป็น https ให้หมด
ซึ่งจะพบกว่า ส่วนมากจะเป็นที่อยู่ของ รูปภาพ ยังเป็น link แบบ http อยู่
(ผลคือ ทำให้กุญแจไม่เป็นสีเขียว และ ถ้า ได้บังคับให้เป็น https โดย htaccess แล้ว จะทำให้ ไม่แสดงรูป)วิธีแก้
วิธี1 ใช้คำสั่ง แทนที่ ใน MySQL หรือ plugin ก็ได้
วิธี2 ใช้ plugin ssl real… (แต่ไม่แนะนำ เพราะมันไมไ่ด้แก้ database จริง)
ต่อไปเป็นการทำให้ เข้า https ได้อย่างเดียว
google มองว่า http และ https เป็นคนละเว็บกัน ถ้าเราไม่ทำ ให้มันเป็นอันใดอันหนึ่ง
จะถูกมองว่าเว็บเป็น Duplicate content ข้อมูลซ้ำซ้อน ส่งผลต่ออันดับเว็บ
วิธีคือ การทำ htatcess redirect 301 โดยใส่ code
.htaccess
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> หรือ RewriteEngine on RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L] # force ssl RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
เสร็จแล้วก็ไป ใส่ cloundflare และตั้งต่า full ssl
จบ************
สำหรับเว็บไซต์ HTTPS ที่ติดโฆษณา
เว็บไซต์ที่เป็น HTTPS จะไม่มีการส่ง Referer (ค่าที่บอกปลายทางว่ามาจากเว็บไหน) ไปให้เว็บปลายทางที่เป็น HTTP
ลูกค้าจะ Track ไม่ได้ว่ามีคนคลิกแบนเนอร์มาจากเว็บเรากี่คน ซึ่งอาจจะทำให้ลูกค้ามองว่าเว็บเราลงโฆษณาแล้วไม่ได้ผล
เพิ่มโค้ดด้านล่างลงไปใน <head> ของเว็บไซต์
<meta name=“referrer” content=“origin”>
เท่านี้เว็บไซต์ HTTPS ของเราก็จะส่งค่า Referer ปกติแล้ว
ใช้ LET’S ENCRYPT
Flexible SSL ของ Cloudflare เป็นการเอา HTTPS ของ Cloudflare ครอบเว็บไซต์ โดยที่เว็บไซต์เราจริง ๆ ยังเป็น HTTP อยู่อนาคตหากปิด Cloudflare ไปชั่วคราว จะทำให้เว็บล่ม
อีกวิธีที่เป็น HTTPS ฟรีเหมือนกัน แต่เราได้ HTTPS จริง ๆ คือใช้ Let’s Encrypt
สอบถาม Hosting ที่ใช้บริการอยู่ได้เลยว่าเค้าสามารถทำ HTTPS ให้ได้มั้ย (เดี๋ยวนี้โฮสต์ดี ๆ ทำได้ทุกเจ้าแล้ว กดจาก DirectAdmin เองได้เลย หรือถ้าใครใช้พวก AWS, DigitalOcean ก็ลุยเองเลย)
โดยสิ่งที่ต้องทำเพิ่มเติมเองก็เหมือนกับการใช้ Flexible SSL เลย นั่นคือ:
- แก้ resource ทั้งหมดที่โหลดด้วย HTTP ให้โหลดด้วย HTTPS (ในธีมบางครั้งมันใช้ HTTP ธรรมดา)
- (สำหรับ WordPress) เปลี่ยนเป็น HTTPS ใน Settings > General
- คนจะยังเข้า HTTP ธรรมดาได้อยู่ ถ้าเขาพิมพ์แบบนั้น เราต้อง Mod rewrite ให้ redirect ไป https (หรือกำหนด Page Rule แบบข้อ 6. ด้านบนก็ได้)
- Search & Replace ในฐานข้อมูลของเรา จาก http://yoursite ให้เป็น https://yoursite