การเข้าถึง Sshwifty
- เปิด browser และไปที่:
https://<SERVER_IP> - คาดว่าจะมีคำเตือน SSL ของ browser (self-signed certificate)
- จำเป็นต้องมีการตรวจสอบสิทธิ์ (ป๊อปอัปการตรวจสอบสิทธิ์พื้นฐาน)
- วิธีการรับรองความถูกต้อง: HTTP Basic Auth
- ข้อมูลเข้าสู่ระบบจะเก็บไว้อย่างปลอดภัยใน:
/root/.cloudzy-creds
ไฟล์และไดเรกทอรีที่สำคัญ
- ไดเรกทอรีติดตั้ง:
/root/sshwifty - ไฟล์ Docker Compose:
/root/sshwifty/docker-compose.yml - ข้อมูลประจำตัวที่เก็บไว้:
/root/.cloudzy-creds - โฮสต์เสมือน Nginx:
/etc/nginx/sites-available/sshwifty.conf - ไฟล์การรับรองความถูกต้องพื้นฐาน:
/etc/nginx/auth/sshwifty.htpasswd - ใบรับรอง TLS:
/etc/nginx/ssl
หมายเหตุด้านความปลอดภัย
- มีเพียง Nginx เท่านั้นที่รับฟังพอร์ตสาธารณะ
- การเข้าถึงได้รับการป้องกันผ่านการตรวจสอบสิทธิ์ขั้นพื้นฐาน
- TLS ใช้ใบรับรองที่ลงนามด้วยตนเอง
- ข้อมูลรับรองจะถูกเก็บไว้โดยได้รับอนุญาตอย่างจำกัด
เปิดใช้งาน SSL กับโดเมน
1. ชี้โดเมนของคุณไปยัง IP ของ server
2. แก้ไข config ของ Nginx และเปลี่ยนทั้งคู่ server_name <IP>; กับโดเมนของคุณ (<your-domain>) สำหรับทั้ง HTTP (port 80) และ HTTPS (port 443) blocks:
vim /etc/nginx/sites-available/sshwifty.conf
3. ติดตั้ง Certbot:
apt install -y certbot python3-certbot-nginx
4. รันคำสั่งต่อไปนี้เพื่อสร้าง Let’s Encrypt certificate ที่ใช้ได้:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. แทนที่ SSL paths ใน Nginx config:
vim /etc/nginx/sites-available/sshwifty.conf
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. รีสตาร์ท Nginx เพื่อใช้การเปลี่ยนแปลง:
systemctl restart nginx
7. เปิด browser และไปที่: https://yourdomain.com