本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立和簽署 X509 憑證
您可以使用 OpenSSL
來建立您應用程式適用的 X509 憑證。OpenSSL 是一個標準的開放原始碼程式庫,支援多種加密功能,包括建立和簽署 x509 憑證。如需關於 OpenSSL 的詳細資訊,請造訪 www.openssl.org
注意
如果您想在單一執行個體的環境中使用 HTTPS,或是使用自我簽署的憑證來在後端重新加密,只需要在本機建立憑證即可。如果您有自己的網域名稱,可以在 AWS 中建立憑證,然後使用 AWS Certificate Manager (ACM),在負載平衡的環境中免費使用該憑證。如需相關說明,請參閱 AWS Certificate Manager 使用者指南中的請求憑證。
在命令列中執行 openssl version
,來檢視是否已安裝 OpenSSL。如果尚未安裝,您可以根據公有 GitHub 儲存庫
~/eb$ eb ssh
[ec2-user@ip-255-55-55-255 ~]$ openssl version
OpenSSL 1.0.1k-fips 8 Jan 2015
您需要建立 RSA 私有金鑰,來產生您的憑證簽署請求 (CSR)。若要建立您的私密金鑰,請使用 openssl genrsa 命令:
[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................+++
...............+++
e is 65537 (0x10001)
privatekey.pem
-
您想要在其中儲存私有金鑰的檔案的名稱。一般而言,openssl genrsa 命令會將私密金鑰的內容印出到畫面上,但此命令會將輸出內容導向檔案。選擇任意的檔案名稱,並將檔案儲存到安全的位置,以供日後擷取。如果您遺失私有金鑰,就無法使用您的憑證。
CSR 是一種檔案,您會將此等檔案傳送到憑證認證機構 (CA),以申請數位伺服器憑證。若要建立 CSR,請使用 openssl req 命令:
$ openssl req -new -key privatekey.pem
-out csr.pem
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 (Enter) 鍵。下表說明和顯示了每個欄位的範例:
名稱 | 描述 | 範例 |
---|---|---|
Country Name (國家/地區名稱) | 兩個字母的 ISO 縮寫,用來代表您的國家/地區。 | US = 美國 |
State or Province (州或省) | 您組織位在的州名或省名。此名稱不得縮寫。 | 華盛頓州 |
Locality Name (地區名稱) | 您組織所在城市的名稱。 | 西雅圖 |
Organization Name (組織名稱) | 您組織的完整法定名稱。請不要使用您組織名稱的縮寫。 | 範例公司 |
Organizational Unit (組織單位) | 選填,這是額外的組織資訊。 | 行銷部門 |
Common Name (通用名稱) | 您網站的完整網域名稱。此名稱必須符合使用者造訪您網站時所看到的網域名稱,否則將會顯示憑證錯誤。 | www.example.com |
電子郵件地址 | 網站管理員的電子郵件地址。 | someone@example.com |
您可以向第三方提交簽署請求來進行簽署,或是針對開發和測試用途自行簽署。自我簽署的憑證也可用於負載平衡器與 EC2 執行個體之間的後端 HTTPS。
若要簽署憑證,請使用 openssl x509 命令。下例使用前一步驟的私密金鑰 (privatekey.pem
) 和簽署請求 (csr.pem
),建立名為 public.crt
的公有憑證,其有效期限為 365
天。
$ openssl x509 -req -days 365
-in csr.pem
-signkey privatekey.pem
-out public.crt
Signature ok
subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com
Getting Private key
保留私有金鑰和公有憑證以供日後使用。您可以放棄簽署請求。一律將私密金鑰儲存於安全的位置,並且避免將該金鑰加入您的原始程式碼中。
若要在 Windows Server 平台上使用憑證,您必須將憑證轉換為 PFX 格式。利用下列指令,從私有金鑰和公有憑證檔案來產生 PFX 憑證:
$ openssl pkcs12 -export -out example.com
.pfx -inkey privatekey.pem
-in public.crt
Enter Export Password: password
Verifying - Enter Export Password: password
當您擁有憑證後,可以將憑證上傳至 IAM,以搭配負載平衡器使用,或是在您的環境中設定執行個體以終止 HTTPS。