การแก้ไข ปรับเปลี่ยนเว็บไซต์ให้รองรับ HTTPS by

30
Sep
12

เนื่องด้วย facebook บังคับให้ application ทุกตัวใช้งาน HTTPS ภายในวันที่ 1 ตุลาคมนี้ ทำให้ผมต้องนั่งปรับแก้ยกใหญ่ โดยสิ่งที่ต้องแก้มีดังนี้

ต้องแก้อะไรบ้าง?

1. ทำ self-signed certificate (ใช้งาน https ได้แต่ browser จะขึ้นเตือนว่าไม่ปลอดภัย และไม่สามารถใช้งานกับ facebook app ที่อยู่ใน canvas ได้) หรือไปขอ certificate จากผู้ให้บริการต่างๆเช่น Thawte, RapidSSL, Godaddy, Verisign ฯลฯ ซึ่งต้องเสียค่าจดทะเบียน ซึ่งจะแตกต่างกันไป

2. แก้ไข code ของเราในการ link ไปแต่ละหน้าจาก http:// ให้เป็น https:// ทั้งหมด เพื่อให้คนที่ใช้งานเว็บไซต์อยู่ไม่หลุดออกจากการเชื่อมต่อ https เพียงเพราะคลิก link เปลี่ยนหน้า

3. แก้ไข code ของเราที่ call ไปยัง external site ต่างๆ เช่น banner exchange ต่างๆ (ที่จริงพวก widget เช่น google+, facebook like หรือ google analytic ก็เข้าเคสนี้ แต่เนื่องจาก code ที่ให้มาจะ auto detect ให้เองว่าเป็น https หรือไม่อยู่แล้วจึงไม่ค่อยมีปัญหานัก ยกเว้นเรา call หาไฟล์ javascript ข้างนอกเองตรงๆ ก็ต้องแก้จาก http:// เป็น https:// ด้วยเช่นกัน)

ผู้ให้บริการ SSL แต่ละเจ้าต่างกันอย่างไร?

เมื่อเราเลือกจะจด SSL แล้วจะมีผู้ให้บริการหลากหลายยี่ห้อมาให้เลือกมากมายเช่น  Thawte, RapidSSL, Godaddy, Verisign ราคาแต่ละเจ้าก็จะต่างๆ กันไป หลายคนอาจสงสัยว่าแล้วเราจะเลือกจดเจ้าที่แพงๆ ไปทำไมกัน? คำตอบคือ “แบรนด์ความน่าเชื่อถือ” ครับ ยิ่งจดแพง ก็จะยิ่งมีความน่าเชื่อถือมากขึ้นตามไปด้วย (อารมณ์ประมาณถ้าไม่จริงจังกับความปลอดภัย ผมคงไม่เลือกจดแพงที่มีแต่เว็บใหญ่ๆ เค้าจดกันหรอกครับ 55) รวมไปถึงขั้นตอนการยืนยันตัวตนด้วยเช่นกัน SSL บางประเภทอาจต้องยืนยันถึงขั้นว่าบริษัทนี้มีตัวตน มีเอกสารการจดทะเบียนถูกต้อง และใช้เวลาการ approve นานเป็นอาทิตย์ จึงสามารถเชื่อถือได้ว่าผ่านการตรวจสอบมาแล้วอย่างดี อะไรประมาณนั้น 55

แต่สำหรับคนทั่วๆ ไปถ้าไม่ได้ทำเกี่ยวกับพวกจ่าย credit card บนหน้าเว็บของเราเองก็ใช้แบบถูกสุดเลยก็ได้ครับ เพราะพวกของถูกๆ จะ approve เร็วและสามารถใช้งานได้ทันทีภายใน 2-3 ชั่วโมง

ขั้นตอนการจดทะเบียน https

1.  เชื่อมต่อเข้า ssh ไปยัง server ของเราที่ host ไฟล์ของเราอยู่

2. สร้าง private key ด้วยคำสั่ง
openssl genrsa -out www.mycompany.com.key 2048

3. สร้าง file csr (ต้องใช้ตอนจดทะเบียน https) ด้วยคำสั่ง
openssl req -new -key www.mycompany.com.key -out www.mycompany.com.csr

4. กรอกรายละเอียด โดยช่องใดไม่ต้องการกรอกสามารถพิมพ์ . เพื่อเว้นว่างไว้ได้ ซึ่งจุดที่สำคัญที่สุดมีเพียงอันเดียวคือ Common Name ให้ใส่เป็นชื่อโดเมนที่ต้องการ (www.mycompany.com และ mycompany.com จะถือว่าเป็นคนละชื่อกัน ต้องจดแยกกัน) ตัวอย่างการกรอกข้อมูลเช่น

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:TH
State or Province Name (full name) [Some-State]:Bangkok
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company LLC
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:www.mycompany.com
Email Address []:.

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

5. copy ข้อมูลในไฟล์ www.mycompany.com.csr ส่งให้ผู้รับจดทะเบียน ssl ดำเนินการต่อไป

6. ต้องมีอีเมล์ที่ชื่อดังต่อไปนี้เท่านั้น(อันใดอันหนึ่ง) เพื่อใช้รับ certificate ที่ทางผู้รับจดทะเบียน https จะส่งกลับมาให้ หากไม่มีจะไม่สามารถจดทะเบียนได้
- admin@mycompany.com

- administrator@mycompany.com

- hostmaster@mycompany.com

- webmaster@mycompany.com

- root@mycompany.com

- postmaster@mycompany.com

7. ติดตั้ง certificate ลง webserver เพื่อเรียกใช้งาน ซึ่ง webserver แต่ละตัว รวมไปถึง hosting แต่ละที่ก็จะมีขั้นตอนต่างๆ กันไป

ขั้นตอน ก็ประมาณนี้แหละครับ ที่จริงมีการจดทะเบียนหลายแบบด้วย ที่นำเสนอให้นี้เป็นการจดต่อ 1 domain ถ้า subdomain ก็ต้องจดแยกกันไป แต่จะมีการจดแบบเหมา เช่น *.mycompany.com แล้วทุกๆ subdomain ภายใต้ domain mycompany.com จะใช้งาน https ได้ทั้งหมด แต่ค่าใช้จ่ายก็จะสูงขึ้นไปอีก และมีข้อจำกัดคือทุกๆ subdomain ต้องใช้งาน IP เดียวกันทั้งหมด ขอจบบทความแต่เพียงเท่านี้ครับ :)

Enjoy this article?

Consider subscribing to our RSS feed!

12 ความเห็น

  1. น้ำดี
    05:54 on July 30th, 2012

    เอ่อ คือว่าผม gen .csr ออกมาแล้วต้องทำไงต่ออ่ะครับ
    ต้องจด https ยังไงอ่ะครับ อยากทำแบบไม่เสียตังอ่ะ มีรึป่าว
    ทำยังไงช่วยแนะนำวิธีหน่อยนะครับ
    ขอพระคุณมากครับ

  2. heha
    11:34 on July 31st, 2012

    ไม่ได้ครับ ต้องเสียเงินเท่านั้น ยกเว้นจะใช้งานแค่คนเดียวก็ปรับเป็น mode sandbox เอาครับ

  3. น้ำดี
    03:17 on August 2nd, 2012

    ง่ะ ยังไงก็ต้องเสียตังค์สินะครับ
    ทั้งค่าเช่าโฮส
    ทั้งค่า ssl
    อื่นๆอีกล่ะ
    ทำแอปเกมบนเฟสบุ๊คเนี้ย ต้องลงทุนเยอะเหมือนกันนะเนี้ย
    ต้องคิดหนักแล้วสิ เรียนจบแล้วจะหาทุนจากที่ไหนดี T_T

    ยังไงก็ขอบพระคุณมากครับ
    บทความที่ท่านเขียน แต่ละเรื่องมีประโยชน์มากๆเลยครับ

  4. heha
    03:21 on August 2nd, 2012
  5. น้ำดี
    19:38 on August 2nd, 2012

    อ่าขอบคุณมากครับ ว่าจะถามต่ออยู่พอดีว่าเรื่อง cloud เนี้ย
    free cloud hosting ของ Heroku
    มันสามารถทำงานได้ขนาดไหนน่ะครับ
    เพราะผมเข้าไปดู cloud ของเจ้าอื่น ที่มันมีให้จัดสเปคเซิฟได่อ่ะครับ
    ลองจัดเล่นๆดู แบบห่วยที่สุด ราคามันก็นะ แพงใช่เล่นเลย
    เลยสงสัยว่าถ้าเป็นของฟรี มันจะทำงานได้ขนาดนั้นอ่ะครับ
    คือผมจะประมาณการณ์ว่าจะทำ app ออกมาแนวไหนถึงจะเหมาะดี
    ตอนนี้ยังโล่งอยู่เลยในสมอง ไม่รู้ว่าจะทำอะไรดี ได้แต่ศึกษา GrahpAPI ไปเรื่อยๆ
    ยังมีคำถามอีกเยอะครับที่อยากจะถาม แต่เอาไว้เท่านี้ก่อน เกรงใจครับ
    คงต้องศึกษาเรื่อง cloud ให้หนักๆซะแล้วสิ

    ขอบคุณมากครับ

  6. น้ำดี
    06:31 on August 7th, 2012

    สวัสดีครับ คุณ heha
    หลังจากผมได้รับคำแนะนำจากท่านแล้ว ผมก็ได้ไปลองหัดใช้ heroku แล้ว
    รู้สึกว่า ก็ดีอยู่นะครับ แต่ว่ามันโหลดข้อมูลช้ามากอ่ะ เข้าเว็บทดสอบแต่ละทีเล่นเอาซะเหนื่อยเลย
    แต่ยังไงก็ขอบคุณมากครับ
    เรื่อง heroku เอาไว้ก่อน คือผมมีคำถามใหม่ครับ
    (กลับมาเล่นที่เซิฟที่ตัวเองที่ จำลองน่ะครับ *-*) ใน mode sandbox มีแต่เราเท่านั้นที่สามารถใช้งานแอพที่เราพัฒนาอยู่ ได้อยู่แค่คนเดียวเหรอครับ
    ถ้าอย่างงั้น เวลาเราจะทดสอบแอพ สมมุตินะครับว่า ผมทำแอพพวกเกม ผมอยากทดสอบระบบพวกส่งของขวัญ หรือชวนเพื่อนทำกิจกรรมต่างๆเนี้ย มันก็ไม่สามารถทดสอบได้ใช่มั้ยครับ
    มันมีวิธีเพิ่มผู้ร่วมพัฒนาแอพรึป่าวครับ ใช้งานเพิ่มได้อีกสักคนประมาณเนี้ยอ่ะครับ
    หรือยังมีวิธีอื่นในการทดสอบอยู่ รึป่าวครับ
    ขอความกรุณาด้วยนะครับผมยังเป็นมือใหม่เลยมีข้อสงสัยอยู่เยอะนะครับ
    ถ้าไม่เป็นการรบกวนช่วยอธิบายวิธีหน่อยนะครับ
    ขอบพระคุณมากครับ

  7. heha
    08:12 on August 7th, 2012

    - ของฟรีก็ทำได้ตามสภาพของฟรีครับ หวังอะไรมากไม่ได้เป็นธรรมดา
    - กดเมนู Role เข้าไป add tester เพื่อใช้งานได้ครับ

  8. น้ำดี
    21:07 on August 7th, 2012

    ว้าว เค้าใช้กันอย่างนี้ เนี้ยเอง
    ขอบพระคุณมากๆครับ

  9. dearzkung
    11:52 on September 9th, 2012

    โอ้ววขอบคุณมาก เดี๋ยวผมไปปรับกับเว็บผมมั้งละ

  10. ชัย
    19:17 on March 23rd, 2013

    ไม่เข้าใจขั้นตอนการ csr อะครับ คือว่าเช่า Hosting ทั่วไปอยู่ ทางผู้ให้บริการบอกให้อัพเป็น VPS ถึงจะทำ SSL ได้เพราะเราใช้เซิฟเวอร์รวม ผมแค่ต้องการศึกษา Graph API ของ Facebook เท่านั้น ไม่ต้องจะทำ App จริงจัง ดูแล้วต้องลงทุนสูงเหมือนกัน พอจะมีวิธีลักไก่ไหมครับ อิอิ

  11. heha
    16:17 on March 31st, 2013

    อ่าน ment บนๆ เลยครับ

  12. รับเหมาก่อสร้าง
    09:42 on August 15th, 2016

    ถ้าทำ SSL แล้ว Backlink ที่เคยทำไว้ ต้องตามไปเปลี่ยนจาก http > https ไหมครับ

ใส่ความเห็น

RSS feed for comments on this post