如何在Ubuntu 20.04中配置CA根證書
CA是公共的,也可以是私有的。 公共CA通常用於驗證網站的身份,私有CA用於為客戶端到站點VPN、使用者、內部伺服器或基礎設施內的個人程式和服務生成證照。
在本文中,我們將學習如何在 Ubuntu 20.04 中建立私有證照頒發機構 (CA)。在這裡,我們使用
easy-rsa
來建立和管理 CA 伺服器。
Ubuntu 20.04
EasyRSA 3.0.8
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
進入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"
下面來初始化以下目錄:
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
使用下面
為 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
不設定密碼保護。
上面的命令已經生成了公私鑰了。公鑰的位置:
/home/bpang/easy/pki/ca.crt
,私鑰位置:
/home/bpang/easy/pki/private/ca.key
。Common Name可以根據需要修改。
現在我們生成了公共證照,我們需要將它匯入到另一臺伺服器上。
bpang@node02:~/easy/pki$ scp ~/easy/pki/ca.crt root@node01:~
然後開啟chrome瀏覽器,將ca.crt證照匯入
Settings - Privacy and security - Security - Manage certificates
我們可以在不同的伺服器上建立一些證照籤名請求 (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)
下面用建立的私鑰來生成證照請求檔案:
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"
將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 ]
現在使用以下命令簽署 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
從輸出來看證照已經儲存到
/home/bpang/easy/pki/issued/server.crt
裡面了。驗證一下:
下面將證照可祕鑰拷貝到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
重啟apache。
客戶端匯入根證照之後,訪問以下可以看到不再顯示not secure了。
在本教程中,我們學習瞭如何在 Ubuntu 20.04 上建立私有證照頒發機構 (CA)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2896621/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 OpenSSL 建立私有 CA:1 根證書
- ca 證書機制
- CDN加速域名https中級CA證書的配置HTTP
- 配置docker和containerd,使用ca證書訪問harborDockerAI
- android 安裝CA證書Android
- 數字證書認證(CA)中心
- PKI/CA與數字證書
- 基於CFSSL工具建立CA證書,服務端證書,客戶端證書服務端客戶端
- CA數字證書包括哪些內容?
- 建立自簽名根證書-中間證書。
- 使用 OpenSSL 建立私有 CA:2 中間證書
- go-自籤ca證書,客戶端數字證書,服務端數字證書Go客戶端服務端
- ca證書怎樣理解?與恆訊科技的ssl證書一樣嗎?
- 如何配置內網IP SSL證書?附客戶端匯入IP根證書兩種方案內網客戶端
- https--OpenSSL生成root CA及簽發證書HTTP
- 使用 OpenSSL 建立私有 CA:3 使用者證書
- Kubernetes客戶端認證——基於CA證書的雙向認證方式客戶端
- 使用OpenSSL建立生成CA證書、伺服器、客戶端證書及金鑰伺服器客戶端
- 自己成為一個證書頒發機構(CA)
- 通過Go語言建立CA與簽發證書Go
- 根證書和中間證書有什麼不一樣
- 轉【翻譯】怎樣在Ubuntu 12.04上配置Apache SSL證書UbuntuApache
- 如何配置Apple推送證書 push證書APP
- fabric-ca載入openssl生成的ecdsa標準證書
- 申請SSL證書CA機構的選擇很重要
- 建立和管理一個 CA 及證書的生命週期
- OpenSSL 生成 RootCA (根證書)並自簽署證書(支援 IP 地址)
- Windows下IIS部署自建CA證書進行雙向認證的過程Windows
- Kubernetes安裝之二:根證書生成
- Nginx 配置https證書NginxHTTP
- 中移鏈結合CA證書實現節點准入控制
- TLS、SSL、CA 證書、公鑰、私鑰。。。今天捋一捋!TLS
- 如何在IIS上安裝證書
- 如何在Mac郵件客戶端配置使用S/MIME郵件證書Mac客戶端
- 根證書是什麼?有什麼用?
- HTTPS的SSL證書配置HTTP
- Ubuntu18.04下安裝Docker並配置SSL證書加密遠端連線UbuntuDocker加密
- Apache 配置https 自簽名證書 或者 購賣證書ApacheHTTP