โดย จอร์เจีย โนลา # การโฮสต์ไซต์อย่างง่ายด้วย Amazon S3 และ HTTPS เฮ้ทุกคน! ในบทช่วยสอนนี้ IâÃÂàจะแสดงวิธีโฮสต์เว็บไซต์แบบสแตติกด้วย HTTPS บน AWS ด้วยโดเมนที่กำหนดเอง ทั้งหมดนี้เป็นไปได้โดยใช้ AWS Free Tier อย่างไรก็ตาม บริการที่เราจะใช้มีค่าใช้จ่ายเล็กน้อย โดยทั่วไป ค่าเหล่านี้ไม่ควรเกิน $1/เดือน เราจะใช้บริการของ AWS ต่อไปนี้ร่วมกัน: âÃÂÃÂS3 âÃÂàรูท 53 âÃÂàตัวจัดการใบรับรอง âÃÂàCloudFront *มาเข้าเรื่องกันเลย!* ตั้งค่าบัคเก็ต S3 ของคุณ อันดับแรก คุณต้องใช้ **ที่ฝากข้อมูล S3 สองแห่งควรตรงกับชื่อโดเมนที่คุณกำหนดเอง โดยที่สองรวมถึงโดเมนย่อย www ที่เก็บข้อมูล 1: ที่เก็บข้อมูล 2: ที่เก็บข้อมูลแรก (mywebsite.com) คือที่เก็บข้อมูลหลักสำหรับไซต์ของคุณ ประกอบด้วยไฟล์และเนื้อหาทั้งหมดของคุณสำหรับเว็บไซต์แบบคงที่ของคุณ ต่อไปเราจะตั้งค่าบัคเก็ตนี้สำหรับการโฮสต์ไซต์แบบคงที่ คุณสามารถค้นหาสิ่งนี้ได้ภายใต้แท็บคุณสมบัติของที่ฝากข้อมูล และเราจะคงค่าเริ่มต้นที่ให้ไว้ที่นี่โดยตั้งค่าดัชนีของไซต์เป็น index.html เรายังจำเป็นต้องทำให้บัคเก็ตนี้เข้าถึงได้เนื่องจากเบราว์เซอร์ของผู้ใช้จะต้องเข้าถึงไฟล์ของบัคเก็ตเพื่อแสดงผลเว็บไซต์ เราสามารถทำได้โดยตั้งค่านโยบายฝากข้อมูลใต้แท็บสิทธิ์ { "เวอร์ชัน": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal":"Action": "s3:GetObject", "ทรัพยากร": "MY_BUCKET_ARN"} ]} นี่เป็นนโยบายง่ายๆ ที่จะอนุญาตให้เข้าถึงการอ่านแบบสาธารณะของวัตถุในบัคเก็ตเท่านั้น ตอนนี้ หากคุณไปที่จุดสิ้นสุดที่กำหนดไว้ในการกำหนดค่าโฮสติ้งคงที่ของบัคเก็ต คุณควรเห็นเว็บไซต์ของคุณ ความคืบหน้า! แต่เราสามารถทำได้ดีกว่านั้น ที่เก็บข้อมูลที่สอง (www.mywebsite.com) เราจะเว้นว่างไว้ แต่กำหนดค่าให้เปลี่ยนเส้นทางไปยังที่เก็บข้อมูลแรกโดยใช้ HTTP เป็นโปรโตคอล (เราจะเปลี่ยนเป็น HTTPS ในภายหลัง) ถังของคุณพร้อมที่จะไป! กำหนดค่าโดเมนด้วย Route53 ดังนั้นเว็บไซต์ของคุณจึงพร้อมใช้งาน แต่สามารถเข้าถึงได้ผ่านจุดสิ้นสุดที่ฝากข้อมูลเท่านั้น ไม่ใช่โดเมนที่คุณกำหนดเอง มาเปลี่ยนสิ่งนั้นกันเถอะ มุ่งหน้าสู่ **Route53 หากคุณได้จดทะเบียนโดเมนของคุณกับ Amazon Registrar คุณจะเห็นว่ามีการตั้งค่าโซนโฮสต์ให้กับคุณด้วยชุดบันทึกสองชุด หนึ่งรายการสำหรับ Name Server (NS) และอีกรายการหนึ่งสำหรับ SOA สิ่งที่เราต้องทำคือสร้างชุดบันทึกอีกสองชุดเพื่อชี้ไปที่ตำแหน่งข้อมูลบัคเก็ต S3 สำหรับแต่ละชุดระเบียน: âÃÂàประเภท: ที่อยู่ IPv4 âÃÂàนามแฝง: ใช่ âÃÂàAlias ​​Target: จุดสิ้นสุดของเว็บไซต์ S3 ที่ตรงกับสิ่งที่คุณตั้งไว้สำหรับชื่อ ตอนนี้เราสามารถไปที่ urlà¢ÃÂæ ที่กำหนดเอง และ voilÃÂà! เราเกือบจะถึงแล้ว แต่มีสิ่งสุดท้ายที่เราขาดหายไปââÃÂàÃÂæ **หมายเหตุ หากโดเมนของคุณจดทะเบียนกับผู้รับจดทะเบียนโดเมนรายอื่น (ไม่ใช่ Amazon) คุณจะต้องทำตามขั้นตอนต่างๆ เพื่อตั้งค่านี้ โดยปกติแล้ว คุณจะต้องเพิ่มระเบียน CNAME ด้วยค่าของจุดสิ้นสุดบัคเก็ต S3 หลัก **การแก้ไขปัญหา หากคุณลบโซนโฮสต์ที่ Amazon สร้างขึ้นเมื่อคุณลงทะเบียนโดเมนครั้งแรก (ฉันทำสิ่งนี้ไปแล้วเนื่องจากโซนโฮสต์มีค่าใช้จ่าย) คุณจะ จะต้องสร้างโซนที่โฮสต์ใหม่ตั้งแต่เริ่มต้น - เลือก âÃÂÃÂCreate Hosted ZoneâÃÂàและตั้งชื่อโดเมน เช่น âÃÂÃÂmywebsite comâÃÂà- สิ่งนี้จะสร้างชุดบันทึกใหม่สำหรับประเภท NS และ SOA - ไปที่โดเมนที่จดทะเบียนแล้วและอัปเดตค่า Name Servers เป็นค่าที่สร้างขึ้นในชุดระเบียน NS ใหม่ การขอหนังสือรับรอง เยี่ยมมาก ไซต์นี้โฮสต์โดยใช้ URL ที่กำหนดเองแล้ว! อย่างไรก็ตาม เราสามารถเข้าถึงได้ผ่านโปรโตคอล HTTP เท่านั้น เราควรตรวจสอบให้แน่ใจเสมอว่าไซต์ของเราปลอดภัยโดยใช้โปรโตคอล HTTPS สิ่งนี้ช่วยปกป้องไซต์และผู้ใช้ของเราจากการโจมตีด้วยการฉีดที่เป็นอันตรายและรับประกันความถูกต้อง มุ่งหน้าสู่ **Certificate Manager** ใน AWS Console และขอใบรับรองสาธารณะใหม่ (ฟรี) คุณจะได้รับแจ้งให้ป้อนชื่อโดเมนที่คุณต้องการรักษาความปลอดภัย ก่อนที่จะออกใบรับรองได้ Amazon จะต้องสามารถยืนยันได้ว่าคุณเป็นเจ้าของโดเมนที่ระบุ คุณสามารถเลือกวิธีการยืนยันได้สองวิธี: อีเมลหรือ DNS โดยทั่วไปอีเมลจะง่ายกว่า แต่คุณจะต้องแน่ใจว่าคุณสามารถเข้าถึงอีเมลที่ใช้ในการจดทะเบียนโดเมนได้ หรือหากคุณใช้ Amazon Registrar และ Route53 คุณสามารถเลือกวิธี DNS ได้ สิ่งนี้ต้องการให้คุณเพิ่มชุดระเบียนเฉพาะบางชุดลงในโซนที่โฮสต์ แต่ส่วนใหญ่จะเป็นแบบอัตโนมัติสำหรับคุณ ดังนั้นจึงค่อนข้างง่าย อาจใช้เวลาสักครู่ในการออกใบรับรองหลังจากการตรวจสอบความถูกต้อง เมื่อเสร็จแล้วเราก็ไปต่อที่ขั้นตอนสุดท้ายได้เลย! การกำหนดค่า CloudFront สำหรับขั้นตอนสุดท้ายที่เราจะใช้ **CloudFront **ซึ่งทำให้เราใช้ใบรับรอง SSL ใหม่เพื่อให้บริการเว็บไซต์ด้วย HTTPS CloudFront ยังเพิ่มความเร็วในการเผยแพร่เนื้อหาเว็บด้วยการจัดเก็บไว้ในตำแหน่งขอบหลายตำแหน่งและส่งมอบจากตำแหน่งขอบที่ใกล้ที่สุดไปยังผู้ใช้ พวกเราต้องการ **การกระจายเว็บใหม่สองรายการสำหรับแต่ละบัคเก็ต S3 ไปที่ CloudFront ในคอนโซล AWS และสร้างการกระจายเว็บครั้งแรก มีการตั้งค่ามากมายสำหรับสร้างการกระจายเว็บ แต่สำหรับพื้นฐาน เราจำเป็นต้องเปลี่ยนเพียงห้าอย่างเท่านั้น: ชื่อโดเมนต้นทาง: ตั้งค่านี้เป็นจุดสิ้นสุดของเว็บไซต์ S3 สำหรับหนึ่งในบัคเก็ต ข้อสำคัญ: ฟิลด์นี้จะให้ตัวเลือกเติมข้อความอัตโนมัติพร้อมชื่อบัคเก็ต S3 ของคุณ อย่างไรก็ตาม การใช้สิ่งเหล่านี้อาจทำให้เกิดปัญหาในการเปลี่ยนเส้นทางไปยังปลายทางที่ฝากข้อมูล ดังนั้นให้ใช้จุดสิ้นสุดที่ฝากข้อมูลโดยตรงแทน รหัสต้นทาง: รหัสนี้จะเติมให้คุณเมื่อคุณป้อนชื่อโดเมนต้นทาง นโยบายโปรโตคอลของผู้ดู: ตั้งค่าเป็น âÃÂÃÂRedirect HTTP เป็น HTTPSâÃÂàชื่อโดเมนสำรอง: ชื่อนี้ควรตรงกับชื่อของบัคเก็ต S3 ที่คุณชี้ไป ตัวอย่างเช่น âÃÂÃÂmywebsite.comâÃÂàSSL Certificate: เลือก âÃÂÃÂCustom SSL CertificateâÃÂàและเลือกใบรับรองใหม่ของคุณจากดร็อปดาวน์ ทำสิ่งนี้อีกครั้งสำหรับบัคเก็ต S3 ที่สอง การกระจายอาจใช้เวลาสักครู่ในการหมุน ดังนั้นในขณะที่เรารอ ปล่อยให้ทำขั้นตอนสุดท้าย ย้อนกลับไปใน **S3 ไปที่บัคเก็ตสำรองของคุณ (www.mywebsite.com) ในแท็บคุณสมบัติและภายใต้ Static Website Hosting ให้ตั้งค่าโปรโตคอลการเปลี่ยนเส้นทางเป็น HTTPS สุดท้ายกลับไปที่ **Route53 เราจำเป็นต้องอัปเดตระเบียน A แบบกำหนดเองที่เราสร้างขึ้นเพื่อกำหนดเป้าหมายการกระจาย CloudFront แทนที่จะเป็นบัคเก็ต S3 สำหรับแต่ละเรกคอร์ด ให้เปลี่ยน Alias ​​Target และเลือกการแจกจ่าย CloudFront ที่มีอยู่ในดร็อปดาวน์ หมายเหตุ: อีกครั้ง หากคุณใช้บริการ DNS อื่น คุณต้องอัปเดตระเบียน CNAME จากที่นั่นเพื่อชี้ไปที่ชื่อโดเมน CloudFront และคุณมีมัน! เว็บไซต์ที่สวยงามของคุณพร้อมใช้งานแล้วในโดเมนที่กำหนดเองและให้บริการด้วย HTTPS! ขอบคุณที่อ่าน! ฉันหวังว่าคู่มือนี้มีประโยชน์และสนุกสนาน ฉันอยากทราบว่าคุณพบว่ามีประโยชน์หรือไม่