2017-06-23 47 views
0

我正在尋找使用https實現運行express服務器,爲AngularJS應用程序供電。目前,我有大部分應用程序在http上運行,但想要切換。這不是一個公開的應用程序。我可以簡單地使用自簽名證書在我們的生產環境中執行此操作嗎?還是應該通過一個可信任的證書頒發機構,即使內部使用?nodejs表達和使用https

使用OpenSSL似乎很容易生成密鑰和pem文件......但是當通過可信任的權威機構獲取某些東西時,我覺得很愚蠢。如果建議我確實使用受信任的CA,而不是自簽名,那麼有人可以指出我在正確的方向去做什麼?

回答

1

答案是「它取決於」。

您當然可以使用自簽名證書,但您必須手動確保所有終端都配置爲信任您的自簽名證書。這是一個受信任的證書頒發機構用於。瀏覽器已經預先建立了各種公共證書頒發機構對證書問題的信任,並且他們同意遵循與頒發證書相關的某些程序。如果你經歷了這個過程,那麼瀏覽器將使用你的證書自動識別和信任https連接(假設所有的事情都和連接一樣)。如果你沒有經歷這個過程,那麼你必須手動告訴每個將要訪問你的應用程序的端點來信任你的證書。對於具有少量受控端點的封閉應用程序,這是非常可行的。對於具有多種端點(隨機瀏覽器,電話等)的開放式應用程序或應用程序,這很困難。

而且,您不想「教導」您的用戶羣要麼忽略安全/證書警告,要麼盲目信任瀏覽器告訴他們可能不安全的事情,因此您不希望將其留給用戶 - 您希望預先配置端點以信任您的新自簽名證書。


給你舉個例子,有具有Web訪問家庭安全攝像系統。如果您需要進行網絡訪問的唯一方式來自2個或3個不同的瀏覽器,使用自簽名證書並將這3個瀏覽器配置爲信任它並不是一個真正的問題。

但是,如果您有許多不同的人可以訪問的Web應用程序,那麼在一組旋轉的瀏覽器上管理證書信任並不會很實際,並且它會簡單得多並且很多更可能安全地使用受信任的CA.

+0

@dvsoukup - 這是否回答了您的問題? – jfriend00

+0

嘿,它沒有!謝謝一堆。通過自簽名證書起身並運行,併爲使用實際經過驗證的證書開闢道路。應該適合用戶。謝謝! – dvsoukup

0

就我個人而言,我更喜歡使用CA可信證書而不是生產環境(甚至開發人員環境)的自簽名證書,因爲您在使用自簽名證書時需要信任/添加例外或覆蓋程序化SSL檢查。

如果您決定使用CA信任證書,我建議您查看Certbot + Let's Encrypt。它是一個值得信賴的CA,並支持大多數着名的服務器。它也是免費的,非常易於使用。唯一的缺點是你需要每3個月更新證書。這也可以根據您的平臺/服務器自動執行。