Web-Server

如何從本地 Django 開發伺服器過渡到受限制的公共測試伺服器?

  • June 3, 2021

我正在開發一個不應向公眾開放的網站。我目前正在使用 manage.py 和 runserver 在本地電腦上進行開發。

但是,我想讓該站點僅對少數特定人公開訪問。這些人不是開發人員,因此他們不需要訪問程式碼。此外,由於他們不是開發人員,因此它應該是一個有點使用者友好的解決方案。他們只需要每天 24 小時查看我目前的更改。

我考慮嘗試使用 ALLOWED_HOSTS 做一些事情,但這些人在旅途中並從許多不同的 IP 登錄,我確信其中一些是動態的。

我考慮將登錄頁面設置為登錄,但該網站已經有一個具有多種使用者類型的複雜登錄系統,這些人需要創建多個帳戶來查看和測試不同的網站功能。僅為整體網站訪問創建單獨的登錄名,然後仍然能夠登錄以測試其他帳戶,這似乎成本太大且對使用者不友好。我想一定有更好的解決方案。

那麼,在開發過程中將 Django 網站共享給有限的非開發人員受眾,同時確保隨機公眾無法訪問的最佳方式是什麼?是否有執行此操作的軟體包或服務?

謝謝。

一種可能的想法是為測試人員提供客戶端 X509 證書

  • 一個人將他們的證書和私鑰輸入到他們的瀏覽器中。在我的 Firefox 中,它位於 Preferences -> Privacy -> 滾動到最底部 -> View Certificates -> tab Your Certificates -> Import
  • 您的 SSL/TLS 連接結束(nginx 反向代理、haproxy、apache 等)雖然在公共 443 埠上偵聽,但不僅配置為提供通常的伺服器端證書,而且還要求成功驗證客戶端-側證書(您顯然配置為只接受測試人員的證書)。
  • 這些是您端的高級 SSL/TLS 選項,因此例如 AWS ALB 實施 https 是不夠的。
  • 這種方式只能授權使用https,不能授權明文http。
  • 這根本不會影響 http GET/POST/cookie 的內容,因此不會影響這些級別的身份驗證方案。
  • 未經授權的瀏覽器顯示 SSL/TLS 錯誤 - 它們無法傳遞任何 GET/POST。

引用自:https://serverfault.com/questions/954749