SSL 證書用於促進 Internet 上的身份驗證和加密。 通常,這些證書由受信任的第三方證書頒發機構頒發,例如 Let’s Encrypt. 自簽名證書是一種無需通過任何第三方證書頒發機構即可獲得的證書。
TLS/SSL 是公共證書和私鑰的組合。 私鑰安全地存儲在服務器或負載均衡器上,而證書是可公開訪問的。
在本教程中,我們將解釋如何 創建自簽名 SSL 證書 通過使用 開放式SSL 工具。
先決條件
一台 Linux 機器和一個用戶 sudo 特權。
安裝 OpenSSL
默認情況下,OpenSSL 在所有主要 Linux 發行版上都可用。 運行以下命令以確認您的 Linux 計算機上是否已安裝 OpenSSL。
$ openssl 版本
如果您沒有看到顯示 OpenSSL 版本詳細信息的輸出,請運行下一個命令來安裝 OpenSSL。
在基於 Ubuntu 和 Debian 的發行版上:
$ sudo apt安裝openssl
在基於 Red Hat 的發行版上:
$ sudo dnf 安裝 openssl $ sudo yum 安裝 openssl
這 openssl 命令語法為:
openssl command options arguments
使用 OpenSSL 創建自簽名 SSL 證書
在確認您的 Linux 機器上安裝了 OpenSSL 工具後,您可以繼續創建您的自簽名證書。
生成私鑰需要 CSR 信息。 由於我們正在生成自簽名證書,因此實際上並不需要輸出 CSR 文件,因為僅當您將 CSR 信息發送到第三方證書頒發機構時才需要。
要創建自簽名 SSL 證書,請鍵入:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout my_key.key -out my_cert.crt
這將創建一個自簽名證書,有效期為 365 天。 除非明確指定另一個目錄,否則將在當前目錄中創建證書和密鑰文件。
以下是每個選項的含義:
- 請求 – 發出證書籤名請求
- -新密鑰 rsa:4096 – 這將創建一個 4096 位長的 RSA 密鑰。 如果沒有指定,默認會創建一個2048位長的key
- -keyout – 將存儲密鑰的私鑰文件名
- -出去 – 表示存儲新證書的文件名
- ——節點 – 跳過使用密碼創建證書的步驟
- -x509 – 創建 X.509 格式的證書
- -天 – 證書有效天數
企業社會責任領域:
C= – 國家名稱。 (兩個字母的代碼)。
ST= – 州或省名稱。
L= – 地區名稱。
O= – 您組織的全名。
OU= – 組織單位名稱。
CN= – 完全限定的域名。
使用現有私鑰和 CSR 創建自簽名證書
在您擁有現有私鑰和 csr 的某些情況下,以下步驟就足夠了。
創建 OpenSSL 私鑰
首先,運行以下命令來創建並保存您的私鑰。 需要此私鑰來簽署您的 SSL 證書。 你可以改變 我的鑰匙 在下面的命令中設置為您自己的值。
$ sudo openssl genrsa -out my_key.key
以下是選項的含義。
- 根薩 生成 RSA 私鑰
- -出去 輸出文件
除非您指定了其他位置,否則您的私鑰將存儲在當前工作目錄中。
創建證書籤名請求
下一步是創建證書籤名請求 (CSR)。 CSR 是您通常會發送給第三方證書頒發機構進行簽名的內容。 但在這種情況下,你要自己簽名。
創建 CSR 時,系統會要求您提供一些信息。 通過按回車鍵,某些字段可能會留空。
現在,運行以下命令開始創建您的 CSR。
$ sudo openssl req -new -key my_key.key -out my_csr.csr
以下是每個選項的含義。
- 請求 發出證書籤名請求
- -新的 新請求
- -鑰匙 存儲您的私鑰文件的路徑
- -出去 輸出文件
下圖描繪了 CSR 創建過程的樣子。

自己簽署證書
當您運行以下命令時,將創建一個有效期為 365 天的自簽名證書。
$ openssl x509 -req -days 365 -in my_csr.csr -signkey my_key.key -out my_cert.crt
以下是選項的含義。
- x509 創建和驗證公鑰證書的國際標準
- -請求 發出證書請求
- -天 證書有效期為多少天
- -在 存儲您的 csr 文件的路徑
- –signkey 存儲您的私鑰的路徑
- -出去 自簽名證書的輸出文件
驗證證書
您可以使用以下命令以文本格式查看證書詳細信息。
$ openssl x509 -text -noout -in my_cert.crt

結論
在本教程中,我們描述瞭如何使用 openssl 工具。 鑑於主流瀏覽器不信任自簽名證書,建議您僅在內部使用或用於測試目的。