如何為網站生成 CA 簽名的 SSL 證書

什麼是 SSL 證書?

SSL 證書是一種數字證書,用於驗證網站的身份並建立加密連接。 SSL (安全套接字層)是一種安全協議,允許在 Web 服務器和客戶端之間進行加密通信。

組織將 SSL 證書添加到他們的網站以確保在線交易的安全和客戶信息的機密性。

這些證書如何運作?

整個過程是這樣的:

  1. 用戶想要訪問某個網站,因此瀏覽器會嘗試安全地連接到其 Web 服務器。
  2. 接下來,瀏覽器將消息發送到 Web 服務器以標識自己。
  3. 作為響應,Web 服務器將其 SSL 證書的副本發送到瀏覽器。
  4. 瀏覽器然後驗證證書是否有效以及它是否可以信任它。 如果它是真實的,瀏覽器會向服務器發送它信任該證書的消息。
  5. 然後服務器以數字簽名確認響應以開始 SSL 加密會話。
  6. 現在可以在 Web 服務器和瀏覽器之間以加密形式進行安全通信。

安裝指南

在本教程中,我將向您展示如何為您的網站生成自簽名證書。

在第一部分中,我將向您展示如何成為本地證書頒發機構。 成為 CA 後,您將能夠為您的網站簽署證書。

在下一部分中,我們將了解如何生成 SSL 證書以及如何獲得 CA 簽名。

要求

要生成 SSL 證書,您需要擁有 打開SSL Linux 系統上安裝的工具包。 大多數 Linux 發行版都預裝了這個軟件包,所以不用擔心。 但是,為了安全起見,請檢查您是否擁有它。 您可以通過運行以下命令來檢查:

如果此命令返回一個 OpenSSL 版本號,這意味著你有它。

現在我們將直接跳到安裝部分。

成為證書頒發機構 (CA):

這部分將向您展示如何借助一些簡單的命令成為 CA。 之後,您將能夠簽署證書。

第 1 步:在 SSL 中創建一個目錄

首先,使用以下命令轉到 SSL 目錄:

接下來,在此處創建一個名為“certificates”的目錄。 您可以隨意命名。

現在使用以下命令轉到您剛剛創建的證書目錄:

第二步:生成CA私鑰

進入證書目錄後,運行以下命令以成為本地 CA:

運行命令後,系統會要求您輸入密碼。 提供一些您可以輕鬆記住和隱藏的東西,因為它可以防止擁有您私鑰的其他人生成他們自己的根證書。

第三步:生成CA證書

現在我們將使用此命令生成根證書:

系統將要求您提供在之前步驟之一中提供的密碼。 在那之後,你會被問到一些不太重要的問題來回答。 但是,在通用名稱中,提供一個您可以輕鬆識別您的根證書的東西,以及其他證書。

現在查看目錄,您將有兩個文件:

  • myCA.key(私鑰)
  • myCA.pem(根證書)

如果您看到這兩個文件,那麼您現在就是一個 CA。 恭喜!

您網站的 CA 簽名證書

現在我們已經成為 CA,我們可以為網站生成證書並對其進行簽名。

第一步:為網站證書創建私鑰

運行以下命令為站點生成私鑰。 要記住密鑰,請使用網站的域名 URL 為其命名。 這是不必要的,但如果您有不同的站點,它有助於管理密鑰。

第 4 步:生成證書籤名請求 (CSR)

現在我們使用以下命令創建一個 CSR:

運行命令後,您將被問到與之前相同的問題。 這些問題無關緊要。 您可以使用上面提供的相同信息填寫它們。

第三步:製作X509 V3證書擴展配置文件

接下來,使用以下命令創建一個名為 ssl.ext 的文件:

使用 nano 編輯器打開文件:

現在將這些行添加到文件中並保存。 當您管理多個網站時需要執行此步驟,以便在文件中添加所有域。 即使您使用的是一個網站,也請執行此步驟,因為我們在下一個命令中使用了此文件。 如果不創建此文件,該命令將不會運行。

第四步:生成證書

這是最後一步,我們將使用我們的 CA 私鑰、CA 證書和 CSR 生成證書,如下所示:

完成此步驟後,我們將獲得名稱為 ssl.crt 的自簽名證書。

您可以通過將證書導入瀏覽器來配置證書。

結論

在本詳細指南中,我們了解瞭如何通過簡單的步驟成為本地證書頒發機構並為我們的網站簽署 SSL 證書。 通過這樣做,您的瀏覽器將最終停止給出“您的連接不是私人的”錯誤,您將能夠安全地訪問您的網站。

如果您想知道如何在 Ubuntu LTS 上檢查 TLS/SSL 證書到期日期,請訪問:

How to Check a TLS/SSL Certificate Expiration Date on Ubuntu