Docker Data Center系列(五)- 使用自定義的TLS安全認證

本系列文章演示如何搭建一個mini的雲平臺和DevOps實踐環境。 基於這套實踐環境,可以部署微服務架構的應用棧,演練提升DevOps實踐能力。

1 名詞說明

  • CSR: Certificate Signing Request,即證書籤名請求, 這個並不是證書,而是向權威證書頒發機構獲得簽名證書的申請,其核心內容是一個公鑰;
  • CRT:證書文件,certificate的縮寫,可以通過修改擴展名的方式與PEM文件互相轉換;
  • PEM:X.509證書的一種編碼格式,內容以"-----BEGIN"開頭,以"-----END"結尾,內容是BASE64編碼;
  • 服務器: 這裏是指安裝UCP/DTR的主機,或者作爲Docker Remote API場景中被訪問的服務器端主機,本文中UCP服務器IP爲192.168.1.101,DTR服務器IP爲192.168.1.102;
  • 客戶端: 這裏是指需要訪問UCP/DTR的主機,或者作爲Docker Remote API場景中發起訪問請求的客戶端主機,本文中客戶端IP爲192.168.1.103, 192.168.1.104。

2 生成自簽名CA證書

2.1 編輯CA配置文件

$ vi /etc/pki/tls/openssl.cnf

[ policy_match ]
# 除了country name,其它都改成optional

[ req_distinguished_name ]
# CommonName設置爲IROOTECH CA,這個會顯示爲證書的【頒發者】和【頒發給】的屬性值

2.2 生成CA私鑰

創建到CentOS系統默認的CA私鑰文件位置:

$ cd /etc/pki/CA/
$ openssl genrsa -out private/cakey.pem 2048

2.3 生成CA證書

創建到CentOS系統默認的CA證書文件位置:

$ openssl req -new -x509 -key private/cakey.pem -out cacert.pem

如果步驟2.1設置好了默認值,一路回車即可完成。

3 生成服務器證書

3.1 生成服務器私鑰

創建到自定義文件夾:

$ mkdir /home/tls/
$ openssl genrsa -out server.key 2048

3.2 生成服務器證書籤名請求

創建到自定義文件夾:

$ mkdir /home/tls/
$ openssl req -new -key server.key -out server.csr

commonName(CN)設置爲UCP(DTR)所在主機名或FQDN。也可以設置爲一個泛域名(*.yourcompany.com),其它都使用默認值。

3.3 生成服務器證書

一般情況下,服務器證書和CA證書不在同一個服務器上,所以需要將3.2節生成的服務器證書籤名請求發送到CA證書所在服務器上。 創建到自定義文件夾:

$ mkdir /home/tls/
$ openssl ca -in server.csr -out server.pem 

注意:生成服務器證書過程默認使用了-cert cacert.pem -keyfile cakey.pem,這兩個文件就是2.2和2.3兩步生成的,位於/etc/pki/CA下的CA密鑰和CA證書。

4 如何使用

現在我們已經生成了必須的幾個文件:

  • /etc/pki/CA/cacert.pem
  • /home/tls/server.pem
  • /home/tls/server.key

4.1 UCP設置證書

在UCP Web UI中, 導航到管理員設置頁面,在左側菜單中,單擊證書

依次上傳:

  • CA證書:cacert.pem
  • 服務器證書:server.pem
  • 私鑰:server.key

點擊保存

4.2 DTR設置證書

在DTR Web UI中,導航到系統頁面, 在右側頁面中,點擊常規,定位到域和代理,點擊顯示TLS設置

依次上傳:

  • CA證書:cacert.pem
  • 服務器證書:server.pem
  • 私鑰:server.key

點擊保存

4.3 瀏覽器導入CA證書

如果希望自己本地瀏覽器訪問UCP Web UI時不顯示安全證書警告,需要如下操作:

  • a. 將cacert.pem文件複製到本地,然後修改擴展名爲.crt;
  • b. 右鍵點擊,在彈出窗口中選擇【安裝證書】;
  • c. 導出【證書導入嚮導】,點擊【下一步】;
  • d. 單選框選擇【將所有的證書放入下列存儲】,點擊【瀏覽】按鈕,彈出窗口中選擇【受信任的根證書頒發機構】,點擊【確認】,點擊【下一步】;
  • e. 點擊【完成】。

系列文章

Docker Data Center系列(一)- 快速搭建雲原生架構的實踐環境 Docker Data Center系列(二)- UCP安裝指南 Docker Data Center系列(三)- DTR安裝指南 Docker Data Center系列(四)- 離線安裝UCP和DTR Docker Data Center系列(五)- 使用自定義的TLS安全認證

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章