什麼是自簽名證書?以及如何創建它

自簽名 SSL 證書是一種數字證書,未經公開信任的證書頒發機構 (CA) 簽名。自簽名證書被認爲不同於傳統的 CA 簽名證書,因爲它們是由負責與證書關聯的網站或軟件的公司或開發人員創建、頒發和簽名的,而不是 CA。

在高層次上,這些自簽名證書基於與 X.509 證書中使用的相同的加密私鑰和公鑰對體系結構。但是,這些數字證書沒有受信任的第三方 CA 的驗證,例如 WoTrus(wosign.com)。發行過程中缺乏獨立驗證會產生額外的風險,這就是自簽名證書的問題。對於面向公衆的網站和應用程序,它們被認爲是不安全的。

此證書類型的用途

儘管它們可能存在風險,但自簽名證書確實有其用途。最主要的是,它們是免費提供的,任何開發人員都可以輕鬆請求。它們能夠按照您自己的時間表實施,並且通常用於內部測試環境或 web 服務器,否則這些環境將被鎖定到外部用戶。

此外,組織受益於知道自簽名 SSL 證書使用與其他付費 SSL/TLS 證書相同的方法加密適用的傳入和傳出數據。

按照 CA 證書的要求,自簽名證書不會在設定的時間段後過期或需要續訂。雖然這看起來很方便,但這是此選項的主要問題之一,因爲它們無法遵守安全更新以響應已發現的漏洞,也無法滿足保護當今現代企業所需的證書敏捷性。因此,很少推薦這種身份驗證方法。

此外,自簽名證書無法撤銷證書,如果證書被遺忘或保留在對惡意行爲者開放的系統上,這會將用於外部威脅的密碼暴露出來。不幸的是,即使如此,一些 IT 部門仍認爲證書頒發機構頒發證書的成本超過了額外驗證和支持所降低的風險。

與自簽名證書相關的風險和問題

有許多與自簽名 SSL 證書相關的安全警告。每當用戶訪問使用此證書類型的站點時,他們將立即收到安全彈出警告提示,其中顯示諸如“error_self_signed_cert”或“err_cert_authority_invalid”之類的錯誤,要求用戶確認他們是否願意繼續。這些錯誤是由用戶的瀏覽器而不是網站本身提示的,這增加了他們關注的額外合法性,同時引入了訪問網站的額外步驟。現代 Web 瀏覽器都不信任自簽名證書,並且不會顯示域名的掛鎖符號或 HTTPS 狀態。

這些警告會給網站訪問者帶來恐懼和不安。他們給人的印象是該網站可能會受到威脅,並且該網站可能無法正確保護他們的數據。訪問者會受到誘惑而避開這些網站並訪問在訪問時不提示安全警告的競爭對手。

可以理解的是,訪問者不太可能在他們信任的網絡瀏覽器告訴他們可能缺乏適當的安全措施的網站上共享任何個人或機密信息。這種謹慎是有充分理由的,因爲自簽名證書可能會被利用。一種流行的方法是中間人攻擊,它允許看到通過 TLS/SSL 協議共享的數據,從而使訪問者面臨身份盜用和系統入侵。

通過選擇這種類型的 SSL 證書,您實際上是在靠自己。這意味着您沒有受信任的證書頒發機構的支持,也沒有應用最新的加密方法來確保對數據、設備和應用程序進行正確的身份驗證和加密。

我應該使用這種類型嗎?

如前所述,使用自簽名證書會帶來很多風險,尤其是在面向公衆的情況下。對於任何處理任何私人信息(包括健康、稅務或財務記錄)的網站來說,它們都具有難以置信的風險。暴露此信息不僅會損害品牌信任,而且會因適用隱私法規的罰款和處罰而對組織造成經濟損失。

許多人認爲在員工門戶或通信站點等區域部署時,在內部使用自簽名證書不會帶來風險,但事實並非如此。它們仍然會導致瀏覽器和安全警告。由於可以忽略這些警告,組織通常會指示其員工這樣做。內部站點的安全是有保證的,所以這直接帶來的危害不大。但是,這可能會無意中導致員工習慣於忽略這些類型的警告。這種類型的行爲可能會使組織面臨更大的風險和漏洞機會。

如何創建證書

由於涉及安全風險,不建議設置自簽名證書,但設置配置文件和完成頒發過程非常簡單,具體取決於您的環境,例如 Apache 或 Ubuntu Linux 服務器。

生成私鑰

要創建 SSL 證書,需要私鑰文件和證書籤名請求 (CSR)。該過程從向您的 CA 請求私鑰開始。私鑰是使用 RSA 和 ECC 等算法生成的加密密鑰。 RSA 密鑰是用於此過程的最古老的加密系統之一,並受到許多計劃的支持。

雖然不推薦使用自簽名證書,但這裏有一個使用以下命令生成密鑰的代碼示例:

openssl genrsa -aes256 -out servername.pass.key 4096

該命令將提示您輸入密碼。如果出於任何原因需要吊銷證書,CA 可以使用密碼來驗證證書所有者。

生成 CSR

生成後,您的私鑰文件現在將作爲 servername.key 位於您當前的目錄中,並將用於生成您的 CSR。以下是自簽名證書的證書籤名請求的代碼示例:

openssl req -nodes -new -key servername.key -out servername.csr

然後,您需要輸入幾條信息,包括組織、組織單位、國家/地區名稱、州、地區和通用名稱。通用名稱通常是該位置的域名 (dns) 或 IP 地址。

輸入此信息後,servername.csr 文件將與 servername.key 私鑰文件一起位於當前目錄中。

頒發證書

最後,從 server.key(私鑰文件)和 server.csr 文件生成一個新證書 (.crt)。生成的證書可以是根證書或中間證書,具體取決於您對信任鏈的應用。以下是生成新證書的命令示例:

openssl x509 -req -sha256 -days 365 -in servername.csr -signkey servername.key -out servername.crt

與上一步類似,它的 servername.crt 文件將在當前目錄中找到。

同樣,自簽名證書在任何環境中部署時都會產生重大風險,因此不建議使用此方法。訪問 WoTrus以瞭解有關受信任的 SSL/TLS 證書和其他類型的數字證書的更多信息。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章