我制作了一個 angular 網站,用于連接基本上是一個黑匣子的本地服務器。黑匣子連接到與我的筆記本電腦相同的路由器,我正在通過它訪問服務器。它在瀏覽器上生成的 IP 地址。在服務器上,我安裝了自簽名證書。在 Windows 上,SSL 在瀏覽器上作業,顯示“您的連接不是私有的”警告,我們可以在那里進入高級并繼續訪問網站。但是在 macOS(Big Sur v11.5.1)上,沒有這樣的選項可用。我們如何解決這個問題。代碼而不是瀏覽器設定。
uj5u.com熱心網友回復:
本地主機不支持 https。但是,您可以使用類似NGrok的工具。我建議你閱讀這個:https : //ngrok.com/docs
uj5u.com熱心網友回復:
你不能單純通過代碼來解決這個問題。SSL 驗證的作業方式如下:
- 瀏覽器遇到 SSL 證書
- 它將查找證書的頒發者(也可能是頒發者證??書的頒發者等等,從而遍歷“證書鏈”)
- 一旦它到達證書鏈的根(沒有頒發者的原始證書),它就會在瀏覽器“內部”自己的資料庫中查找這個根證書。當且僅當資料庫中包含最高頒發者證書時,瀏覽器才會認為此連接是安全的。
(這只是一個非常基本和簡化的概述!我建議您深入研究 SSL/TLS 證書鏈等。)
問題是,對于您的自簽名證書,沒有頒發者(這就是它被稱為“自簽名”的原因。)
你可以嘗試什么:
- 創建您自己的證書頒發機構(“CA”;互聯網上有很多教程),從而創建這樣一個“根”證書。
- 使用此 CA 為您的服務器創建和簽署證書。
- 在瀏覽器/作業系統中匯入根 CA 證書,從而添加到可信證書資料庫中。
這是相當多的作業,但是處理您的問題的“最干凈”的方式。
備擇方案:
- 不要在本地使用 HTTPS,只使用普通的 HTTP。
- 從受信任的 CA 獲取“官方”證書。這些通常非常昂貴,我認為他們不會為僅本地服務器發布 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/345243.html
