Ssl

如何在本地 apache 開發伺服器上使用 TLS(在 localhost 上)

  • March 8, 2019

我正在嘗試建立一個鏡像我的實時伺服器的開發環境,但在防火牆後面。

直到最近,我的共享主機站點還沒有提供 TLS/SSL,所以這不是問題/選項,但現在加密是我需要重新配置我的開發環境的規範。

過去,我有一個 Ubuntu 伺服器在我的工作站(配置了 Webmin)的容器中執行,其域名(例如:example.com)和目錄結構與實時伺服器相同。我在 /etc/hosts 文件中添加了 example.com 的條目,以便我的 Web 瀏覽器訪問本地伺服器而不是實時伺服器。這讓我可以完美地搭建我的 WordPress 網站,然後通過簡單的複制操作部署到實時伺服器,而不必使用“遷移外掛”,這不僅會花錢,而且可能會引入錯誤。

我的問題是,現在我需要正確模擬 TLS 的操作(本地)才能執行/測試我的 WordPress 網站。

“live”站點 example.com 使用“Let’s Encrypt”萬用字元證書,(所以我不能以任何方式使用 Let’s Encrypt 而不將 live 站點弄亂)但是對於開發來說,擁有一個 self-某種類型的簽名證書,只要它足夠好,我可以向瀏覽器“添加例外”。我不需要允許防火牆外的任何人訪問開發/登台站點 - 該站點只需要能夠“呼叫”以獲取外掛和主題的更新。

我看到的所有範例都描述了設置 Let’s Encrypt 或設置為 localhost,但沒有關於“欺騙”伺服器的內容。

這可能嗎?

最簡單的方法是創建自簽名證書,將其添加到 Web 伺服器。並且不要忘記將其添加到瀏覽器(以避免)警告消息。

您可以在此處查看如何執行此操作

您可以在一個命令中執行此操作:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

如果您不想使用密碼保護您的私鑰,也可以添加 -nodes(no DES 的縮寫)。否則它將提示您輸入“至少 4 個字元”的密碼。

您可以將 days 參數 (365) 替換為任何數字以影響到期日期。然後它會提示您輸入“國家名稱”之類的內容,但您只需按 Enter 並接受預設值即可。

添加 -subj ‘/CN=localhost’ 以抑制有關證書內容的問題(將 localhost 替換為您想要的域)。

除非您之前將自簽名證書導入瀏覽器,否則不會向任何第三方驗證自簽名證書。如果您需要更高的安全性,您應該使用由證書頒發機構 (CA) 簽名的證書。

引用自:https://unix.stackexchange.com/questions/505074