การติดตั้งใบรับรอง SSL ฟรีบน LEMP Stack ด้วย Let’s Encrypt



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

Let’s Encrypt เป็นโครงการความร่วมมือของ Linux Foundation ซึ่งเป็นผู้ออกใบรับรองแบบเปิดที่จัดทำโดย Internet Security Research Group ฟรีสำหรับทุกคนที่เป็นเจ้าของชื่อโดเมนเพื่อใช้ Let’s Encrypt เพื่อรับใบรับรองที่เชื่อถือได้ ความสามารถในการทำให้กระบวนการต่ออายุเป็นไปโดยอัตโนมัติรวมถึงการทำงานเพื่อให้ง่ายต่อการติดตั้งและกำหนดค่า ช่วยรักษาเว็บไซต์ให้ปลอดภัยและพัฒนาแนวทางปฏิบัติด้านความปลอดภัย TLS รักษาความโปร่งใสด้วยใบรับรองทั้งหมดที่เปิดเผยต่อสาธารณะสำหรับการตรวจสอบ อนุญาตให้ผู้อื่นใช้โปรโตคอลการออกและการต่ออายุของตนเป็นมาตรฐานเปิด



โดยพื้นฐานแล้ว Let’s Encrypt พยายามทำให้การรักษาความปลอดภัยไม่ต้องพึ่งพาห่วงไร้สาระที่สร้างขึ้นโดยองค์กรขนาดใหญ่เพื่อแสวงหาผลกำไร (คุณสามารถพูดได้ว่าฉันเชื่อในโอเพนซอร์สและนี่คือโอเพ่นซอร์สที่ดีที่สุด)



มีสองตัวเลือก: ดาวน์โหลดแพคเกจและติดตั้งจากที่เก็บหรือติดตั้ง certbot-auto wrapper (เดิมชื่อ Letsencrypt-auto) จาก allowencrypt โดยตรง



ดาวน์โหลดจากที่เก็บ

sudo apt-get install allowencrypt -y

เมื่อติดตั้งเสร็จแล้วก็ได้เวลารับใบรับรองของคุณ! เรากำลังใช้วิธีการแบบสแตนด์อโลนที่ได้รับการรับรองโดยสร้างอินสแตนซ์ของเซิร์ฟเวอร์เพื่อรับใบรับรองของคุณ



sudo allowencrypt certonly –standalone –d example.com -d subdomain.example.com -d othersubdomain.example.com

ssl1

ป้อนอีเมลของคุณและยอมรับข้อกำหนดในการให้บริการ ตอนนี้คุณควรมีใบรับรองที่ดีสำหรับแต่ละโดเมนและโดเมนย่อยที่คุณป้อน แต่ละโดเมนและโดเมนย่อยจะถูกท้าทายดังนั้นหากคุณไม่มีระเบียน DNS ที่ชี้ไปที่เซิร์ฟเวอร์ของคุณคำขอจะล้มเหลว

หากคุณต้องการทดสอบกระบวนการก่อนที่จะได้รับใบรับรองจริงของคุณคุณสามารถเพิ่ม –test-cert เป็นอาร์กิวเมนต์หลังจาก certonly หมายเหตุ: –test-cert ติดตั้งใบรับรองที่ไม่ถูกต้อง คุณสามารถทำได้ไม่ จำกัด จำนวนครั้งอย่างไรก็ตามหากคุณใช้ใบรับรองสดจะมีการ จำกัด อัตรา

ssl2

ไม่รองรับโดเมนไวลด์การ์ดและดูเหมือนว่าจะไม่รองรับ เหตุผลที่ให้มาคือเนื่องจากกระบวนการออกใบรับรองไม่มีค่าใช้จ่ายคุณสามารถขอได้มากเท่าที่คุณต้องการ นอกจากนี้คุณสามารถมีหลายโดเมนและโดเมนย่อยในใบรับรองเดียวกัน

ย้ายไปที่การกำหนดค่าของ NGINX เพื่อใช้ใบรับรองที่ได้มาใหม่ของเรา! สำหรับเส้นทางไปยังใบรับรองฉันใช้เส้นทางจริงแทนที่จะเป็นนิพจน์ทั่วไป

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

2559-05-16_122009

หากคุณใช้ Chrome และไม่ได้ปิดใช้งานการเข้ารหัส ssl ที่ระบุไว้ข้างต้นคุณจะได้รับ err_spdy_inadequate_transport_security คุณต้องแก้ไขไฟล์ nginx conf ให้มีลักษณะเช่นนี้เพื่อแก้ไขข้อบกพร่องด้านความปลอดภัยใน gzip

2559-05-16_122647

ssl3

หากคุณพบว่าคุณได้รับบางสิ่งเช่นการเข้าถึงถูกปฏิเสธ - คุณต้องตรวจสอบอีกครั้งว่า server_name (และ root) ถูกต้อง ฉันเพิ่งเอาหัวโขกกับกำแพงจนหมด โชคดีที่ในเซิร์ฟเวอร์ของฉันฝันร้ายพร้อมกับคำตอบ - คุณลืมตั้งไดเรกทอรีรากของคุณ! ฉันใส่รากและมีเลือดออกและมีดัชนีที่น่ารักของฉัน

หากคุณต้องการตั้งค่าสำหรับโดเมนย่อยที่แยกจากกันคุณสามารถใช้

2559-05-16_122342

คุณจะได้รับแจ้งให้สร้างรหัสผ่านสำหรับชื่อผู้ใช้ (สองครั้ง)

sudo service nginx รีสตาร์ท

ตอนนี้คุณจะสามารถเข้าถึงไซต์ของคุณได้จากทุกที่ด้วยชื่อผู้ใช้และรหัสผ่านหรือในเครื่องโดยไม่ต้อง หากคุณต้องการให้มีการทดสอบรหัสผ่านเสมอให้ลบการอนุญาต 10.0.0.0/24; # เปลี่ยนเป็นสายเครือข่ายท้องถิ่นของคุณ

คำนึงถึงระยะห่างสำหรับ auth_basic หากไม่ถูกต้องคุณจะได้รับข้อผิดพลาด

หากคุณมีรหัสผ่านผิดคุณจะโดน 403

ssl4

สิ่งสุดท้ายที่เราต้องทำตั้งค่าการต่ออายุอัตโนมัติของใบรับรอง SSL

สำหรับงาน cron แบบธรรมดานี้เป็นเครื่องมือที่เหมาะสมสำหรับงานนี้เราจะกำหนดให้เป็นผู้ใช้รูทเพื่อป้องกันข้อผิดพลาดในการอนุญาต

(sudo crontab -l 2> / dev / null; echo ‘0 0 1 * * allowencrypt ต่ออายุ’) | sudo crontab -

เหตุผลในการใช้ / dev / null คือเพื่อให้แน่ใจว่าคุณสามารถเขียนลงใน crontab ได้แม้ว่าจะไม่มีอยู่ก่อนหน้านี้ก็ตาม

อ่าน 3 นาที