Skip to main content

จะทำให้เว็บไซต์ที่ติดตั้งใบรับรอง SSL เปลี่ยนเส้นทางจาก HTTP ไปยัง HTTPS ได้อย่างไร?

หลังจากติดตั้งใบรับรอง SSL เสร็จเรียบร้อยแล้ว จำเป็นต้องกำหนดค่ากฎการเปลี่ยนเส้นทางแบบบังคับ 301 บนเซิร์ฟเวอร์เพื่อให้สามารถเข้าถึงเว็บไซต์ทั้งหมดผ่านการเข้ารหัส HTTPS ได้ วิธีการดำเนินการเฉพาะของแต่ละเซิร์ฟเวอร์:

คำแนะนำ

หลังกำหนดค่าแล้ว โปรดล้างแคชของเบราว์เซอร์ก่อนทดสอบ แนะนำให้ใช้ เครื่องมือตรวจสอบ SSL ของ Racent เพื่อตรวจสอบสถานะการเปลี่ยนเส้นทาง

Nginx

หากคุณต้องการเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS โดยอัตโนมัติ คุณสามารถตั้งค่าได้โดยทำตามขั้นตอนต่อไปนี้:

  1. ใช้ฟังก์ชันการเปลี่ยนเส้นทางของ Nginx เพิ่ม return 301 https://$host$request_uri; ใน server ของ HTTP ก็จะสามารถเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS ได้ แก้ไขเนื้อหาดังนี้:

    server {
    listen 80;
    #เปลี่ยนคำขอโดเมน http เป็น https
    return 301 https://$host$request_uri;
    }

  2. รีสตาร์ทเซิร์ฟเวอร์ Nginx ก็จะสามารถเข้าถึงผ่านโดเมนได้ โดย HTTP จะเปลี่ยนเส้นทางไปยัง HTTPS โดยอัตโนมัติ

คำแนะนำ

สำหรับขั้นตอนการติดตั้งใบรับรอง SSL แบบสมบูรณ์ โปรดดู บทช่วยสอนการติดตั้งใบรับรอง sslTrus บนเซิร์ฟเวอร์ Nginx


Tomcat

หากคุณต้องการเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS โดยอัตโนมัติ คุณสามารถตั้งค่าได้ตามขั้นตอนต่อไปนี้:

  1. แก้ไขไฟล์ /usr/tomcat9.0.13/conf ในไดเรกทอรี web.xml และค้นหาแท็ก </welcome-file-list>

  2. โปรดขึ้นบรรทัดใหม่หลังแท็กปิด </welcome-file-list> และเพิ่มเนื้อหาต่อไปนี้

    <login-config>  
    <!-- Authorization setting for SSL -->
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
    <!-- Authorization setting for SSL -->
    <web-resource-collection >
    <web-resource-name >SSL</web-resource-name>
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
  3. แก้ไขไฟล์ server.xml ในไดเรกทอรี /usr/tomcat9.0.13/conf โดยเปลี่ยนพารามิเตอร์ redirectPort เป็นพอร์ต connector ของ SSL ซึ่งก็คือพอร์ต 443 ดังตัวอย่างต่อไปนี้:

    <Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="443" />
  4. บันทึกไฟล์คอนฟิก จากนั้นรันคำสั่งต่อไปนี้ในไดเรกทอรี bin เพื่อตรวจสอบว่าการตั้งค่าถูกต้องหรือไม่

    ./configtest.sh
  5. หากการตั้งค่าไม่มีปัญหา ให้รีสตาร์ทเซิร์ฟเวอร์ Tomcat ก็จะสามารถเข้าถึงผ่านโดเมนเนมได้ และรองรับการเปลี่ยนเส้นทางอัตโนมัติจาก HTTP ไปยัง HTTPS

    ./shutdown.sh  #ปิดเซิร์ฟเวอร์ Tomcat
    ./startup.sh #เริ่มเซิร์ฟเวอร์ Tomcat
เคล็ดลับ

สำหรับขั้นตอนการติดตั้งใบรับรอง SSL แบบเต็มรูปแบบ โปรดดู บทช่วยสอนการติดตั้งใบรับรอง sslTrus SSL บนเซิร์ฟเวอร์ Tomcat


IIS

  1. เปิด IIS Service Manager

  2. เลือกชื่อไซต์ภายใต้ Websites แล้วดับเบิลคลิกเปิด “URL Rewrite” ดังภาพต่อไปนี้:

    หมายเหตุ

    ก่อนดำเนินการขั้นตอนนี้ โปรดดาวน์โหลดและติดตั้ง โมดูล URL Rewrite ก่อน

    IIS

  3. เข้าสู่หน้า “URL Rewrite” แล้วคลิก เพิ่มกฎ ในคอลัมน์ “การดำเนินการ” ทางด้านขวา ดังภาพต่อไปนี้:

    IIS

  4. ในหน้าต่าง "เพิ่มกฎ" ที่ปรากฏขึ้น เลือก กฎเปล่า แล้วคลิก ตกลง ดังภาพต่อไปนี้:

    IIS

  5. เข้าสู่หน้า "แก้ไขกฎขาเข้า" ดังภาพต่อไปนี้:

    IIS

    • ชื่อ: กรอก Http redirect to https
    • URL ที่ตรงกัน: ป้อน (.*) ด้วยตนเองในช่อง "รูปแบบ"
    • เงื่อนไข:
      • คลิก เพิ่ม เพื่อเปิดหน้าต่าง "เพิ่มเงื่อนไข"
      • ป้อนเงื่อนไข: {HTTPS}
      • ตรวจสอบว่าสตริงอินพุต: ค่าเริ่มต้นเลือก ตรงกับรูปแบบ
      • รูปแบบ: ป้อน ^OFF$ ด้วยตนเอง
    • การดำเนินการ: กรอกพารามิเตอร์ต่อไปนี้
      • ประเภทการดำเนินการ: เลือก เปลี่ยนเส้นทาง
      • URL เปลี่ยนเส้นทาง: https://{HTTP_HOST}/{R:1}
      • ประเภทการเปลี่ยนเส้นทาง: 301 เปลี่ยนเส้นทางถาวร
  6. คลิก นำไปใช้ ในคอลัมน์ "การดำเนินการ" ทางด้านขวาเพื่อบันทึก

  7. กลับไปที่หน้าแรกของเว็บไซต์ คลิก เริ่มต้นใหม่ ในคอลัมน์ "จัดการเว็บไซต์" ทางด้านขวา จากนั้นจะสามารถเข้าถึงด้วย HTTPS ได้

คำแนะนำ

สำหรับขั้นตอนการติดตั้งใบรับรอง SSL แบบสมบูรณ์ โปรดดู บทช่วยสอนการติดตั้งใบรับรอง sslTrus บนเซิร์ฟเวอร์ IIS


Apache

หากคุณต้องการเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS โดยอัตโนมัติ คุณสามารถตั้งค่าได้ดังนี้:

  1. แก้ไขไฟล์คอนฟิก httpd.conf ในไดเรกทอรี /etc/httpd/conf ตรวจสอบว่าไฟล์คอนฟิกนี้มีบรรทัด LoadModule rewrite_module modules/mod_rewrite.so หรือไม่ หากมี ให้ลบเครื่องหมายคอมเมนต์ (#) ที่ต้นบรรทัด หากไม่มี ให้เพิ่มบรรทัด LoadModule rewrite_module modules/mod_rewrite.so จากนั้นบันทึกไฟล์คอนฟิก

  2. เปิดไฟล์ http.conf แล้วเพิ่มเนื้อหาต่อไปนี้ในไฟล์คอนฟิก:

    <VirtualHost *:80>
    # เพิ่มใหม่
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    </VirtualHost>
  3. รีสตาร์ทเซิร์ฟเวอร์ Apache ก็สามารถเข้าถึงผ่านโดเมนเนมได้ โดยเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS โดยอัตโนมัติ

คำแนะนำ

สำหรับขั้นตอนการติดตั้งใบรับรอง SSL แบบสมบูรณ์ โปรดดู บทช่วยสอนการติดตั้งใบรับรอง sslTrus บนเซิร์ฟเวอร์ Apache


Apache2

หากคุณต้องการเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS โดยอัตโนมัติ คุณสามารถตั้งค่าได้ดังนี้:

  1. ป้อนคำสั่ง a2enmod rewrite ใน command line เพื่อเปิดใช้งานโมดูลเปลี่ยนเส้นทาง

  2. จากนั้นเปิดไฟล์คอนฟิก HTTP เช่น /etc/apache2/sites-available/000-default.conf แล้วเพิ่มเนื้อหาต่อไปนี้ในไฟล์คอนฟิก:

    <VirtualHost *:80>
    # เพิ่มใหม่
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    </VirtualHost>
  3. รีสตาร์ทเซิร์ฟเวอร์ Apache ก็สามารถเข้าถึงผ่านโดเมนเนมได้ โดยเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS โดยอัตโนมัติ

คำแนะนำ

สำหรับขั้นตอนการติดตั้งใบรับรอง SSL แบบสมบูรณ์ โปรดดู บทช่วยสอนการติดตั้งใบรับรอง sslTrus บนเซิร์ฟเวอร์ Apache2