fdbs avatar

如何創建自簽名SSL證書

🕜 by fdbs

什麼是自簽名SSL證書?

自簽名SSL證書是由創建它的人而不是受信任的證書頒發機構簽名的證書。自簽名證書可以與受信任的CA簽名SSL證書具有相同的加密級別。

被任何瀏覽器識別為有效的自簽名證書。如果您使用的是自簽名證書,則網絡瀏覽器將向訪問者顯示警告,提示該網站證書無法驗證。

自簽名證書主要用於測試目的或內部使用。您不應該在暴露於Internet的生產系統中使用自簽名證書。

先決條件

需要使用openssl工具包來生成自簽名證書。

要檢查Linux系統上是否安裝了openssl軟件包,請打開終端,輸入 如果安裝了軟件包,則係統將打印OpenSSL版本,否則您將看到類似openssl version``openssl command not found

的內容。

如果您的系統上未安裝openssl軟件包,則可以通過運行以下命令進行安裝:

Ubuntu 和 Debian

Bash:
1
sudo apt install openssl

複製

數百和 Fedora

Bash:
1
sudo yum install openssl

複製

創建自簽名SSL證書

要創建新的自簽名SSL證書,請使用openssl req

Bash:
1
2
3
4
5
6
7
openssl req -newkey rsa:2048 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out domain.crt \
            -keyout domain.key

複製

讓我們分解命令並了解每個選項的含義:

  • -newkey rsa:4096-創建新的證書請求和4096位RSA密鑰。默認值為2048位。
  • -x509 -創建X.509證書。
  • -sha256 -使用265位SHA(安全哈希算法)。
  • -days 3650-認證證書的天數。3650是10年。您可以使用任何正整數。
  • -nodes -創建沒有密碼的密鑰。
  • -out example.crt-指定將新創建的證書寫入的文件名。您可以指定任何文件名。
  • -keyout example.key-指定要寫入新創建的私鑰的文件名。您可以指定任何文件名。

有關openssl req

按下Enter鍵後,命令將生成私鑰,並詢問您將用於生成證書的一系列問題。

Bash:
1
2
3
4
5
6
7
8
9
10
11
12
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'domain.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

複製

輸入所需的信息,然後按Enter。

Bash:
1
2
3
4
5
6
7
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:myfreax.com
Email Address []:[email protected]

複製

將在指定位置創建證書和私鑰。使用ls命令驗證是否已創建文件:

Bash:
1
ls

複製

Bash:
1
example.crt example.key

複製

就是這樣!您已經生成了一個新的自簽名SSL證書。

備份新證書和外部存儲密鑰始終是一個好主意。

創建無提示的自簽名SSL證書

如果要生成自簽名SSL證書而沒有提示任何問題,請使用-subj

Bash:
1
2
3
4
5
6
7
8
openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key \
            -subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"

複製

Bash:
1
2
3
4
5
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----

複製

-subj

  • C=-國家/地區名稱。ISO的兩個字母縮寫。
  • ST= -州或省名。
  • L=-地區名稱。您所在的城市的名稱。
  • O= -您組織的全名。
  • OU= -組織單位。
  • CN= -完全限定的域名。

写一条评论

Based on Golang + fastHTTP + sdb | go1.16.4 Processed in 1ms