การติดตั้งใบรับรอง SSL ฟรีใน LEMP Stack ด้วย Let's Encrypt
Let 's Encrypt เป็นโครงการความร่วมมือของ Linux Foundation ซึ่งเป็นหน่วยงานออกใบรับรองแบบเปิดที่จัดทำโดยกลุ่มวิจัยด้านความปลอดภัยทางอินเทอร์เน็ต ฟรีสำหรับทุกคนที่เป็นเจ้าของชื่อโดเมนเพื่อใช้ Let's Encrypt เพื่อขอรับใบรับรองที่เชื่อถือได้ ความสามารถในการทำให้ขั้นตอนการต่ออายุอัตโนมัติและการทำงานเพื่อให้ติดตั้งและกำหนดค่าได้ง่ายขึ้น ช่วยให้เว็บไซต์มีความปลอดภัยและล่วงหน้าการรักษาความปลอดภัย TLS รักษาความโปร่งใสพร้อมกับใบรับรองทั้งหมดที่มีการตรวจสอบโดยสาธารณชน อนุญาตให้ผู้อื่นใช้โปรโตคอลการออกและต่ออายุเป็นมาตรฐานเปิด
เป็นหลัก Let 's Encrypt พยายามทำให้การรักษาความปลอดภัยไม่พึ่งพาห่วงไร้สาระโดยมีขนาดใหญ่สำหรับองค์กรที่มีกำไร (คุณอาจกล่าวได้ว่าผมเชื่อในโอเพนซอร์สและนี่คือโอเพ่นซอร์สที่ดีที่สุด)
มีสองตัวเลือก: ดาวน์โหลดแพคเกจและติดตั้งจากที่จัดเก็บหรือติดตั้ง wrapper certbot-auto (beforeencryptify-auto) จาก allowencrypt โดยตรง
เพื่อดาวน์โหลดจากที่เก็บข้อมูล
sudo apt-get ติดตั้ง allowencrypt -y
เมื่อติดตั้งเสร็จแล้วเวลาที่จะได้รับใบรับรองของคุณ! เรากำลังใช้วิธีการแบบสแตนด์อโลน certonly วางไข่อินสแตนซ์ของเซิร์ฟเวอร์เพื่อรับใบรับรองของคุณ
sudo letsencrypt certonly -standalone -d example.com -d subdomain.example.com -d othersubdomain.example.com
ป้อนอีเมลของคุณและยอมรับข้อกำหนดในการให้บริการ ตอนนี้คุณควรมีใบรับรองที่ดีสำหรับแต่ละโดเมนและโดเมนย่อยที่คุณป้อน แต่ละโดเมนและโดเมนย่อยถูกท้าทายดังนั้นถ้าคุณไม่มีระเบียน dns ที่ชี้ไปยังเซิร์ฟเวอร์ของคุณคำขอจะล้มเหลว
หากคุณต้องการทดสอบกระบวนการนี้ก่อนที่จะได้รับใบรับรองจริงคุณสามารถเพิ่มใบรับรองทดสอบเป็นอาร์กิวเมนต์หลังจากได้รับการรับรอง หมายเหตุ: -test-cert ติดตั้งใบรับรองที่ไม่ถูกต้อง คุณสามารถดำเนินการได้ไม่ จำกัด จำนวนครั้งอย่างไรก็ตามหากคุณใช้ใบรับรองแบบสดมีการ จำกัด อัตรา
โดเมน Wildcard ไม่ได้รับการสนับสนุนและดูเหมือนว่าจะไม่ได้รับการสนับสนุน เหตุผลที่ได้รับคือตั้งแต่ขั้นตอนการรับรองเป็นอิสระคุณสามารถขอได้มากเท่าที่คุณต้องการ นอกจากนี้คุณสามารถมีหลายโดเมนและโดเมนย่อยในใบรับรองเดียวกันได้
ย้ายไปที่การกำหนดค่าของ NGINX เพื่อใช้ใบรับรองที่ได้รับใหม่ของเรา! สำหรับพา ธ ไปยังใบรับรองฉันใช้เส้นทางจริงแทนการใช้นิพจน์ปกติ
ขณะนี้มี SSL และอาจเปลี่ยนเส้นทางการเข้าชมทั้งหมดของเราไปได้ ส่วนเซิร์ฟเวอร์แรกทำแบบนั้น ฉันกำหนดให้เปลี่ยนเส้นทางการเข้าชมทั้งหมดรวมทั้งโดเมนย่อยไปยังโดเมนหลัก
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่หากคุณใช้ Chrome และไม่ปิดใช้งาน ciphers ssl ที่แสดงไว้ข้างต้นคุณจะได้รับ err_spdy_inadequate_transport_security นอกจากนี้คุณยังจำเป็นต้องแก้ไขไฟล์ nginx conf เพื่อค้นหาสิ่งต่างๆเช่นนี้เพื่อแก้ไขข้อบกพร่องด้านความปลอดภัยใน gzip
หากคุณพบว่าคุณได้รับบางสิ่งเช่นการเข้าถึงถูกปฏิเสธ - คุณต้องตรวจสอบอีกครั้งว่าเซิร์ฟเวอร์ชื่อ (และราก) ถูกต้อง ฉันเพิ่งเสร็จสิ้นการต่อสู้หัวของฉันกับผนังจนฉันผ่านออก โชคดีในฝันร้ายของเซิร์ฟเวอร์ของฉันพร้อมคำตอบ - คุณลืมตั้งไดเรกทอรีรากของคุณ! เลือดและกระบองฉันใส่ในรากและมีดัชนีที่น่ารักของฉัน
หากคุณตั้งค่าสำหรับโดเมนย่อยที่แยกจากกันคุณสามารถใช้
คุณจะได้รับพร้อมท์ให้สร้างรหัสผ่านสำหรับชื่อผู้ใช้ (สองครั้ง)
sudo บริการ nginx เริ่มใหม่
ขณะนี้คุณจะสามารถเข้าถึงไซต์ของคุณได้จากทุกที่ที่มีชื่อผู้ใช้และรหัสผ่านหรือเฉพาะที่ไม่มี ถ้าคุณต้องการที่จะมีความท้าทายรหัสผ่านเสมอให้ลบอนุญาต 10.0.0.0/24; # เปลี่ยนเป็นเครือข่ายท้องถิ่นของคุณ
ใจระยะห่างสำหรับ auth_basic ถ้าไม่ถูกต้องคุณจะได้รับข้อผิดพลาด
หากคุณมีรหัสผ่านผิดคุณจะกด 403
รายการสุดท้ายที่เราต้องทำคือตั้งค่า autorelewal ของ SSL certs
สำหรับงาน cron แบบง่ายๆนี้เป็นเครื่องมือที่เหมาะสมสำหรับงานเราจะระบุว่าเป็นผู้ใช้หลักเพื่อป้องกันข้อผิดพลาดในการได้รับอนุญาต
(sudo crontab -l 2> / dev / null; echo '0 0 1 * * allowencrypt ต่ออายุ') | sudo crontab -
เหตุผลในการใช้ / dev / null คือเพื่อให้แน่ใจว่าคุณสามารถเขียนลงใน crontab ได้แม้ว่าจะไม่มีชื่ออยู่ก็ตาม
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่