วิธีการติดตั้งใบรับรองด้วยตนเอง SSL สำหรับเว็บไซต์จะมีประโยชน์มากเมื่อเรามีเว็บไซต์ที่โฮสต์โดยไม่มี cPanel / VestaCP. กวดวิชา ใช้สำหรับ NGINX และจำเป็นต้องเข้าถึง 'รูท' เพื่อกำหนดค่าสำหรับ HTTPS.
เนื้อหา
ทำอย่างไร
ฉันพูดใน a บทความเดือนที่แล้ว เป็นเว็บไซต์มากขึ้นมีการเปลี่ยนไป การเชื่อมต่อที่ปลอดภัย HTTPS และบอกว่า Firefox Quantum เป็นเบราว์เซอร์ตัวแรกที่เริ่มต้นการตั้งค่าสถานะ HTTP เป็นอันตรายสำหรับผู้ใช้
ละทิ้งความคิดที่เริ่มหยั่งรากในจิตใจของหลายๆ คน เช่น เว็บไซต์ที่ไม่มี HTTPS จะไม่ปลอดภัยและเต็มไปด้วยไวรัสและผู้ที่มี HTTPS บริสุทธิ์ดุจน้ำตา (เป็นความคิดที่ผิดโดยสิ้นเชิง) มากมาย administratorและเซิร์ฟเวอร์และไซต์ถูกบังคับให้ทำการเปลี่ยนจาก HTTP เป็นโปรโตคอลแบบเดียวกัน HTTPS.
ที่ย้ายมาจาก โปรโตคอล HTTP ที่ HTTPS เกี่ยวข้องกับการซื้อ a ใบรับรอง SSL หรือการใช้ใบรับรองที่จัดทำโดยโครงการฟรี ขอเข้ารหัส, หลังจากซื้อใบรับรอง SSLมันควรจะเป็น ติดตั้งบนเซิร์ฟเวอร์แล้วก็ กำหนดค่าเว็บไซต์แล้ว สำหรับ การเปลี่ยนจาก http: // เป็น https/ :/.
วิธีการติดตั้งใบรับรองด้วยตนเอง SSL (HTTPS การเชื่อมต่อ) สำหรับเว็บไซต์ที่โฮสต์บนเซิร์ฟเวอร์ NGINX โดยไม่มี cPanel หรือ VestaCP
มาดูวิธีการติดตั้งใบรับรองทีละขั้นตอนกัน SSL บนเซิร์ฟเวอร์ที่มี NGINX.
ผู้ใช้ cPanel หรือ VestaCP พวกเขามีปลายนิ้วของพวกเขาในด้านการจัดการเฉพาะสาขาที่พวกเขาสามารถวางและติดตั้ง ใบรับรอง SSL. สำหรับผู้ใช้ที่มีเฉพาะ บรรทัดคำสั่ง จากคอนโซลเซิร์ฟเวอร์ของเขา SSH, สิ่งที่ได้รับความซับซ้อนเล็กน้อย เขาจะต้องทำ อัปโหลดไปยังใบรับรอง si กำหนดค่า NGINX สำหรับ เปลี่ยนจาก HTTP เป็น HTTPS.
1. สร้าง CSR (คำขอลงนามใบรับรอง)
คุณเข้าสู่ระบบเซิร์ฟเวอร์ที่โฮสต์เว็บไซต์ที่คุณต้องการเปิดใช้งาน HTTPS และรันบรรทัดคำสั่งถัดไป โดยเฉพาะอย่างยิ่งใน / etc / nginx /ssl.
openssl req -new -newkey rsa:2048 -nodes -keyout numedomeniu.key -out numedomeniu.csr
ควรเป็นชื่อของไฟล์ .key และ .crt ใส่ชื่อโดเมนที่คุณจะใช้ ในกรณีที่คุณจะใช้มากกว่าหนึ่งครั้ง ให้รู้ว่าอันไหนและมาจากไหน
สุดท้ายในโฟลเดอร์ที่เรียกใช้บรรทัดคำสั่งคุณจะได้รับสองไฟล์ domainname.csr และ domainname.key
2. ซื้อใบรับรอง SSL และรับไฟล์ .crt และ .ca-bundle.
ในกรณีที่เราซื้อ บวกSSL ใบรับรองหลายโดเมน จาก COMODOผ่านทาง NAMECHEAP.COM. หลังจากกระบวนการซื้อ คุณจะได้รับอีเมลที่คุณต้องเปิดใช้งานใบรับรอง SSL. ป้อนคำขอตรวจสอบความถูกต้องของชื่อโดเมนที่ใช้ใบรับรองและข้อมูลอื่น ๆ ที่รวมอยู่ในแบบฟอร์ม มันจะขอให้คุณป้อนเช่นกัน CSR Code สร้างขึ้นด้านบน คุณสามารถค้นหาได้ในไฟล์ "domainname.csr" วิ่ง "แมว numedomeniu.csr” เพื่อให้สามารถคัดลอกเนื้อหา
ในตอนท้ายคุณจะถูกขอให้ทำ การตรวจสอบชื่อโดเมน สำหรับใบรับรองที่ใช้ คุณมีมากขึ้น วิธีการตรวจสอบ. ที่ง่ายที่สุดและรวดเร็วที่สุดคือ a ที่อยู่อีเมลที่ทำโดยชื่อโดเมน.
เมื่อคุณผ่านขั้นตอนนี้แล้ว ในไม่กี่นาที คุณควรได้รับอีเมลที่มีการแนบไฟล์เก็บถาวรที่มีไฟล์สองไฟล์ ใบรับรอง SSL (เช่น 113029727.crt) และไฟล์เช่น 113029727.ca-bundle
3. อัปโหลดไฟล์ใบรับรองไปยังเซิร์ฟเวอร์ผ่าน FTP / SFTP
อัปโหลดไฟล์จากจุดที่ 2 ไปยังเซิร์ฟเวอร์ในตำแหน่งเดียวกับที่คุณมีไฟล์จากจุดที่ 1 และรวมเนื้อหาของไฟล์: domainname.csr และ 113029727.ca-bundle เป็นไฟล์เดียว เช่น, ssl-domain.crt.
สุดท้ายในไฟล์ที่สร้างขึ้นใหม่, ssl-domain.crt ต้องมี รหัสใบรับรองสามชุด, ครั้งแรกในไฟล์ 113029727.crt.
4. กำหนดค่า NGINX สำหรับ HTTPS – การเพิ่มใบรับรอง SSL.
ขั้นตอนต่อไปคือการ กำหนดค่า NGINX สำหรับ HTTPS.
สมมติว่าคุณได้กำหนดค่าไว้สำหรับ HTTP คุณจะต้องเพิ่มบรรทัดต่อไปนี้ลงในไฟล์การกำหนดค่า nginx ของโดเมนเท่านั้น:
server {
listen 80;
server_name numedomeniu.tld www.numedomeniu.tld;
rewrite ^ https://$server_name$request_uri permanent;
}
server {
listen 443 ssl;
server_name numedomeniu.tld www.numedomeniu.tld;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_certificate /etc/nginx/ssl/ssl-domeniu.crt;
ssl_certificate_key /etc/nginx/ssl/numedomeniu.key;
ssl_prefer_server_ciphers on;
บนเส้น "ssl_certificate"และ"ssl_certificate_key“ คุณต้องผ่านไปให้ได้ เส้นทางที่แน่นอนในเซิร์ฟเวอร์ ไปยังสองไฟล์ เส้น "rewrite” คือการทำ การเปลี่ยนเส้นทางถาวรจาก http ถึง httpsดังนั้นจึงไม่มีความเสี่ยงที่จะมีไซต์ซ้ำกันบน HTTP และ HTTPS.
5. ตรวจสอบการกำหนดค่า NGINX และรีสตาร์ทหลังจากติดตั้งใบรับรองด้วยตนเอง SSL
ก่อนเริ่มบริการ nginx ใหม่ ควรตรวจสอบ a nginx.conf.
nginx -t
หากทุกอย่างเรียบร้อยดีกับผลการทดสอบ nginx ให้เริ่มบริการใหม่
systemctl restart nginx
หรือ
service nginx restart
ขึ้นอยู่กับ CMS ที่คุณใช้บนเว็บไซต์: WordPress, Drupal, Magento, Joomla, Prestashop เป็นต้น CMS คุณจะต้องกำหนดค่าฐานข้อมูลและไฟล์อื่นๆ ของคุณให้มีเว็บไซต์ที่ถูกต้อง HTTPS.
ถ้าเราบอกว่าคุณมีรูปภาพในหน้าเว็บที่มีเส้นทางขึ้นต้นด้วย "http: //" หน้านั้นจะไม่ถูกต้อง HTTPSและการล็อคตัวบ่งชี้จะไม่ปรากฏในแถบที่อยู่ของเว็บเบราว์เซอร์