Let's Encrypt เป็นผู้ออกใบรับรอง (CA) ที่ให้ใบรับรอง SSL ฟรีกับไคลเอ็นต์อัตโนมัติ โดยใช้ใบรับรอง Let's Encrypt SSL คุณสามารถเข้ารหัสปริมาณการใช้งานระหว่างเว็บไซต์และผู้เยี่ยมชมของคุณ กระบวนการทั้งหมดนั้นง่ายและการต่ออายุอัตโนมัติ นอกจากนี้โปรดทราบว่าการติดตั้งหรือต่ออายุใบรับรองไม่ทำให้เกิดการหยุดชะงักใด ๆ
ในบทช่วยสอนนี้เราจะใช้ Certbot เพื่อรับติดตั้งและต่ออายุใบรับรอง SSL ของคุณโดยอัตโนมัติ Certbot กำลังได้รับการพัฒนาอย่างแข็งขันโดย Electronic Frontier Foundation (EFF) และเป็นไคลเอนต์ที่แนะนำสำหรับ Let's Encrypt
ข้อกำหนดเบื้องต้น
- อินสแตนซ์ Vultr ที่ใช้งาน Ubuntu 16.04
- ชื่อโดเมนที่จดทะเบียนแล้วชี้ไปที่เซิร์ฟเวอร์ของคุณ
- Nginx
ติดตั้ง Certbot
ในการรับใบรับรอง Let's Encrypt SSL คุณต้องติดตั้งไคลเอนต์ Certbot บนเซิร์ฟเวอร์ของคุณ
เพิ่มที่เก็บ กดENTERปุ่มเมื่อได้รับแจ้งให้ยอมรับ
add-apt-repository ppa:certbot/certbot
อัพเดตรายการแพ็กเกจ
apt-get update
ดำเนินการต่อโดยติดตั้งแพคเกจ Certbot และ Nginx ของ Certbot
apt-get -y install python-certbot-nginx
การกำหนดค่า Nginx
Certbot กำหนดค่า SSL โดยอัตโนมัติสำหรับ Nginx แต่ต้องทำเช่นนั้นเพื่อค้นหาบล็อกเซิร์ฟเวอร์ในไฟล์กำหนดค่า Nginx ของคุณ ทำได้โดยจับคู่server_name
คำสั่งในไฟล์กำหนดค่ากับชื่อโดเมนที่คุณต้องการขอใบรับรอง
หากคุณกำลังใช้ไฟล์กำหนดค่าเริ่มต้น/etc/nginx/sites-available/default
ให้เปิดด้วยโปรแกรมแก้ไขข้อความเช่นnano
และค้นหาserver_name
คำสั่ง แทนที่ขีดล่าง_
ด้วยชื่อโดเมนของคุณเอง:
nano /etc/nginx/sites-available/default
หลังจากแก้ไขไฟล์กำหนดค่าserver_name
คำสั่งควรมีลักษณะดังนี้ ในตัวอย่างนี้ฉันสมมติว่าโดเมนของคุณคือ example.com และคุณกำลังร้องขอใบรับรองสำหรับ example.com และ www.example.com
server_name example.com www.example.com;
ดำเนินการต่อโดยตรวจสอบไวยากรณ์ของการแก้ไขของคุณ
nginx -t
หากไวยากรณ์ถูกต้องให้รีสตาร์ท Nginx เพื่อใช้การกำหนดค่าใหม่ หากคุณได้รับข้อความแสดงข้อผิดพลาดให้เปิดไฟล์การกำหนดค่าอีกครั้งและตรวจสอบความผิดพลาดจากนั้นลองใหม่
systemctl restart nginx
รับใบรับรอง Let's Encrypt SSL
คำสั่งต่อไปนี้จะได้รับใบรับรองสำหรับคุณ แก้ไขการกำหนดค่า Nginx ของคุณเพื่อใช้และโหลด Nginx อีกครั้ง
certbot --nginx -d example.com -d www.example.com
คุณสามารถขอใบรับรอง SSL สำหรับโดเมนเพิ่มเติมได้ เพียงเพิ่ม-d
ตัวเลือกหลาย ๆ ครั้งตามที่คุณต้องการ
certbot --nginx -d example.com -d www.example.com -d example.net -d example.net
ในกรณีที่คุณต้องการรับใบรับรองจาก Let's Encrypt โดยไม่ต้องติดตั้งโดยอัตโนมัติคุณสามารถใช้คำสั่งต่อไปนี้ สิ่งนี้ทำให้การเปลี่ยนแปลงชั่วคราวในการกำหนดค่า Nginx ของคุณเพื่อขอรับใบรับรองและย้อนกลับเมื่อมีการดาวน์โหลดใบรับรอง
certbot --nginx certonly -d example.com -d www.example.com
หากคุณใช้ Certbot เป็นครั้งแรกคุณจะได้รับแจ้งให้ป้อนที่อยู่อีเมลและยอมรับข้อกำหนดในการให้บริการ ที่อยู่อีเมลนี้จะถูกใช้สำหรับการต่ออายุและประกาศความปลอดภัย เมื่อคุณระบุที่อยู่อีเมลแล้ว Certbot จะขอใบรับรองจาก Let's Encrypt และเรียกใช้ความท้าทายเพื่อยืนยันว่าคุณเป็นผู้ควบคุมโดเมนที่เป็นปัญหา
หาก Certbot สามารถรับใบรับรอง SSL จะถามว่าคุณต้องการกำหนดการHTTPS
ตั้งค่าอย่างไร คุณสามารถเปลี่ยนเส้นทางผู้เยี่ยมชมเว็บไซต์ของคุณผ่านการเชื่อมต่อที่ไม่ปลอดภัยหรือให้พวกเขาเข้าถึงผ่านการเชื่อมต่อที่ไม่ปลอดภัย โดยทั่วไปควรเปิดใช้งานเพราะจะทำให้แน่ใจได้ว่าผู้เข้าชมจะสามารถเข้าถึงเว็บไซต์ของคุณที่มีการป้องกัน SSL เท่านั้น ENTERเลือกทางเลือกของคุณแล้วกด
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
ในที่สุด Certbot จะยืนยันว่ากระบวนการนี้สำเร็จและที่เก็บใบรับรองของคุณ ตอนนี้ใบรับรองของคุณได้รับการดาวน์โหลดและติดตั้งแล้ว
ต่ออายุอัตโนมัติ
เนื่องจาก Let's Encrypt เป็นผู้ออกใบรับรองฟรีและเพื่อสนับสนุนให้ผู้ใช้ดำเนินการต่ออายุอัตโนมัติใบรับรองจะมีอายุ 90 วันเท่านั้น Certbot จะดูแลการต่ออายุใบรับรองโดยอัตโนมัติ มันไม่ได้โดยการทำงานวันละสองครั้งผ่านทางcertbot renew
systemd
คุณสามารถตรวจสอบว่าการต่ออายุอัตโนมัติทำงานโดยเรียกใช้คำสั่งนี้
certbot renew --dry-run
คุณสามารถต่ออายุใบรับรองด้วยตนเองได้ตลอดเวลาโดยเรียกใช้คำสั่งต่อไปนี้
certbot renew
การกำหนดค่าขั้นสูง
คำสั่งด้านบนขอรับและติดตั้งใบรับรอง SSL ด้วยการกำหนดค่าที่เหมาะสมกับกรณีส่วนใหญ่ หากคุณต้องการใช้มาตรการรักษาความปลอดภัยขั้นสูงสำหรับเว็บไซต์ของคุณคุณสามารถใช้คำสั่งต่อไปนี้เพื่อรับใบรับรอง
certbot --nginx --rsa-key-size 4096 --must-staple -d example.com -d www.example.com
--rsa-key-size 4096
ใช้คีย์ RSA 4096 บิตแทนของคีย์ 2048 บิตซึ่งมีความปลอดภัยมากขึ้น ข้อเสียของเรื่องนี้ก็คือการที่คีย์ที่ใหญ่กว่าส่งผลให้ค่าใช้จ่ายประสิทธิภาพเล็กน้อย นอกจากนี้เบราว์เซอร์และอุปกรณ์รุ่นเก่าอาจไม่รองรับคีย์ RSA 4096 บิต
การ--must-staple
เพิ่มส่วนขยาย OCSP Must Staple ให้กับใบรับรองและกำหนดค่า Nginx สำหรับการเย็บเล่ม OCSP ส่วนขยายนี้อนุญาตให้เบราว์เซอร์ตรวจสอบว่าใบรับรองของคุณยังไม่ถูกเพิกถอนและเชื่อถือได้ เบราว์เซอร์บางตัวเท่านั้นที่รองรับคุณสมบัตินี้