如何在Ubuntu 20.04中配置CA根證書

roc_guo發表於2022-05-24

CA是公共的,也可以是私有的。 公共CA通常用於驗證網站的身份,私有CA用於為客戶端到站點VPN、使用者、內部伺服器或基礎設施內的個人程式和服務生成證照。

在本文中,我們將學習如何在 Ubuntu 20.04 中建立私有證照頒發機構 (CA)。在這裡,我們使用  easy-rsa來建立和管理 CA 伺服器。

環境

Ubuntu 20.04

EasyRSA 3.0.8

安裝Easy-RSA

Easy-RSA 是一個 行工具,極大地促進了證照頒發機構 (CA) 的建立和證照的管理。它會生成一個私鑰和公共根證照。

從github下載Easy-RSA管理工具:

bpang@node02:~$ wget 
bpang@node02:~$ tar xvf EasyRSA-3.0.8.tgz
bpang@node02:~$ mv EasyRSA-3.0.8 easy
安裝CA服務

進入easy目錄,複製一份vars變數檔案,它用來存放組織資訊。

bpang@node02:~/easy$ cp -p vars.example vars

編輯vars檔案

bpang@node02:~/easy$ vim vars

將下面幾行內容複製到vars檔案中,修改後面的值為自己想要的。

set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "BJ"
set_var EASYRSA_REQ_CITY        "BJ"
set_var EASYRSA_REQ_ORG "Linuxprobe"
set_var EASYRSA_REQ_EMAIL       "test@example.com"
set_var EASYRSA_REQ_OU          "COm"

如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
下面來初始化以下目錄:

bpang@node02:~/easy$ ./easyrsa init-pki
Note: using Easy-RSA configuration from: /home/bpang/easy/vars
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/bpang/easy/pki

如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
使用下面 為 CA 伺服器生成根私鑰對:

bpang@node02:~/easy$ ./easyrsa build-ca nopass
Note: using Easy-RSA configuration from: /home/bpang/easy/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
Generating RSA private key, 2048 bit long modulus (2 primes)
.....................................................................................................................................+++++
..........................................................................................................................+++++
e is 65537 (0x010001)
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.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home/bpang/easy/pki/ca.crt

上面命令中的 nopass不設定密碼保護。
如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
上面的命令已經生成了公私鑰了。公鑰的位置: /home/bpang/easy/pki/ca.crt,私鑰位置: /home/bpang/easy/pki/private/ca.key。Common Name可以根據需要修改。

在其他客戶端匯入CA證照

現在我們生成了公共證照,我們需要將它匯入到另一臺伺服器上。

bpang@node02:~/easy/pki$ scp ~/easy/pki/ca.crt root@node01:~

然後開啟chrome瀏覽器,將ca.crt證照匯入
Settings - Privacy and security - Security - Manage certificates
如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照

建立web證照請求和私鑰

我們可以在不同的伺服器上建立一些證照籤名請求 (CSR),讓CA證照伺服器對這些請求進行簽名。

建立一個名為 cert 的目錄來儲存 CSR 和私鑰:

bpang@node02:~$ mkdir cert
bpang@node02:~$ cd cert
bpang@node02:~/cert$

使用openssl生成私鑰:

bpang@node02:~/cert$ openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
.......+++++
....................................+++++
e is 65537 (0x010001)

如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
下面用建立的私鑰來生成證照請求檔案:

bpang@node02:~/cert$ openssl req -new -key server.key -out server.req -subj "/C=CN/ST=BJ/L=BJ/O=Linuxprobe/OU=poc/CN=192.168.56.103/emailAddress=admin@example.com"

如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
將csr證照請求檔案複製到CA伺服器中,用來簽名。

簽名伺服器證照

首先使用easyrsa工具的 import-req將請求檔案匯入:

bpang@node02:~/easy$ ./easyrsa import-req ~/cert/server.req server
Note: using Easy-RSA configuration from: /home/bpang/easy/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
The request has been successfully imported with a short name of: server
You may now use this name to perform signing operations on this request.

匯入證照請求的語法為:

  show-req[ cmd-opts ]

如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
現在使用以下命令簽署 CSR:

bpang@node02:~/easy$ ./easyrsa sign-req server server
Note: using Easy-RSA configuration from: /home/bpang/easy/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a server certificate for 825 days:
subject=
    countryName               = CN
    stateOrProvinceName       = BJ
    localityName              = BJ
    organizationName          = Linuxprobe
    organizationalUnitName    = poc
    commonName                = 192.168.56.103
    emailAddress              = admin@example.com
Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
Using configuration from /home/bpang/easy/pki/easy-rsa-761176.rivirt/tmp.7Wh15B
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'CN'
stateOrProvinceName   :ASN.1 12:'BJ'
localityName          :ASN.1 12:'BJ'
organizationName      :ASN.1 12:'Linuxprobe'
organizationalUnitName:ASN.1 12:'poc'
commonName            :ASN.1 12:'192.168.56.103'
emailAddress          :IA5STRING:'admin@example.com'
Certificate is to be certified until Aug 13 13:33:36 2024 GMT (825 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home/bpang/easy/pki/issued/server.crt

如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
從輸出來看證照已經儲存到 /home/bpang/easy/pki/issued/server.crt裡面了。驗證一下:
如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
下面將證照可祕鑰拷貝到web伺服器中,用來配置web的https:

# 將證照複製到/etc/ssl/certs
bpang@node02:~$ sudo cp -p easy/pki/issued/server.crt /etc/ssl/certs/
# 將私鑰複製到/etc/ssl/private
bpang@node02:~$ sudo cp -p cert/server.key /etc/ssl/private/

修改apache2的配置檔案,指定ssl的證照和私鑰檔案位置:

bpang@node02:~$ sudo vim /etc/apache2/sites-enabled/default-ssl.conf
                 SSLCertificateFile      /etc/ssl/certs/server.crt
                 SSLCertificateKeyFile /etc/ssl/private/server.key

如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照
重啟apache。

測試

客戶端匯入根證照之後,訪問以下可以看到不再顯示not secure了。
如何在Ubuntu 20.04中配置CA根證照如何在Ubuntu 20.04中配置CA根證照

總結

在本教程中,我們學習瞭如何在 Ubuntu 20.04 上建立私有證照頒發機構 (CA)。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2896621/,如需轉載,請註明出處,否則將追究法律責任。

相關文章