Leo Yeh's Blog

SAS 資訊安全 (10)

基本介紹

教學目標

初步了解針對 SAS 平台如何透過 OpenSSL 工具建立憑證頒發機構憑證、網站簽署憑證和自簽憑證。

重點概念

首先許多客戶對於對外網站會採用第三方簽署憑證,對於內部應用程式將會使用網站簽署憑證,因為任何應用程式將會只能夠在組織內部執行,同時組織將會有內部憑證頒發機構和內部處理簽署憑證的流程。但是若是我們要快速針對內部應用程式進行安全連線的測試,則就可能會採用自簽憑證。至於要如何開始呢?我們則可以在 Windows 平台下載 Apache 2.4 VC15 Windows Binaries and Modules,並且解壓縮至「C:\」磁碟機中,同時開啟命令提示字元輸入下述指令,就能夠開始使用 OpenSSL 工具,以利建立憑證頒發機構、建立憑證和建立自簽憑證。

1
2
3
> SET OPENSSL_CONF=C:\Apache24\conf\openssl.cnf
> cd C:\Apache24\bin
> openssl version

接著憑證頒發機構 (Certification Authority,CA) 主要是產生數位憑證的實體或單位,憑證頒發機構可以是屬於個人的自簽憑證、屬於組織的網站簽署憑證或屬於商業組織的第三方簽署憑證,同時憑證頒發機構主要為被受信任的第三方,主要是建立憑證所有者和依賴憑證另一方的信任關係。信任的概念主要是使用憑證的關鍵,客戶端必須要能夠信任憑證,以及信任憑證頒發機構,其中憑證頒發機構主要有兩種類型,分別為根憑證頒發機構和中繼憑證頒發機構,同時根憑證頒發機構和多個中繼憑證頒發機構將會形成信任鏈的過程。然而客戶有可能會需要維護一個內部的憑證頒發機構,以利降低公開憑證頒發機構簽署憑證的成本和延遲,以及產生僅有內部存取的測試和開發環境,此時我們將能夠透過 OpenSSL 工具建立憑證頒發機構憑證,主要有三個步驟,分別為:

  1. 產生私密金鑰。
  2. 產生憑證頒發機構憑證。
  3. 檢查和查看憑證頒發機構憑證。

建立憑證頒發機構憑證

產生私密金鑰

1
> openssl genrsa -aes256 -out ca_key.pem 4096

產生憑證頒發機構憑證

1
> openssl req -new -x509 -days 3650 -sha256 -extensions v3_ca -key ca_key.pem -out ca_cert.pem

檢查和查看憑證頒發機構憑證

1
> openssl x509 -in ca_cert.pem -noout -text

再來若我們要建立網站簽署或第三方簽署憑證則會需要私密金鑰和憑證簽署請求,為了確保憑證的安全性,通常我們會採用 2048bits RSA 或 256bits ECDSA 私密金鑰,此外若要保護私密金鑰,則我們會在被信任的電腦中產生私有金鑰和憑證簽署請求,並且確保每年自動更新為最新憑證。 此時我們將能夠透過 OpenSSL 工具建立憑證,主要有三個步驟,分別為:

  1. 產生私密金鑰。
  2. 產生憑證簽署請求。
  3. 簽署憑證。
  4. 查看伺服器憑證。

建立憑證

產生私密金鑰

1
> openssl genrsa -out server_key.pem 2048

產生憑證簽署請求

1
> openssl req -new -key server_key.pem -out server_csr.pem

簽署憑證

請在憑證頒發機構伺服器進行。

1
> openssl x509 -req -days 3650 -sha256 -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -in server_csr.pem -out server_cert.pem

查看伺服器憑證

1
> openssl x509 -text -noout -in server_cert.pem

最後我們也能夠透過 OpenSSL 工具建立自簽憑證,主要有兩種方式,分別為簡易和完整,所謂簡易主要是指一行指令即可完成建立自簽憑證,至於所謂完整則是指透過私密金鑰和憑證簽署請求建立自簽憑證,主要有四個步驟分別為:

  1. 產生私密金鑰。
  2. 產生憑證簽署請求。
  3. 簽署憑證。
  4. 查看伺服器憑證。

簡易建立自簽憑證

產生自簽憑證

1
> openssl req -newkey rsa:2048 -nodes -keyout server_key.pem -x509 -days 365 -sha256 -out server_cert.pem

查看伺服器憑證

1
> openssl x509 -text -noout -in server_cert.pem

簡易建立自簽憑證

產生私密金鑰

1
> openssl genrsa -out server_key.pem 2048

產生憑證簽署請求

1
> openssl req -new -key server_key.pem -out server_csr.pem

簽署憑證

1
> openssl x509 -req -days 365 -sha256 -signkey server_key.pem -in server_csr.pem -out server_cert.pem

查看伺服器憑證

1
> openssl x509 -text -noout -in server_cert.pem

總結我們針對 SAS 平台將能夠透過 OpenSSL 工具建立憑證頒發機構憑證、網站簽署憑證和自簽憑證,以利快速針對內部 SAS 相關應用程式進行安全連線的測試。

相關資源

⬅️ Go back