如何為ServerHello建立憑證鏈

如何為ServerHello建立憑證鏈

我一直在嘗試整合一個憑證鏈。我有提交給憑證授權單位/CA 的私鑰 ( privatekey.pem) 和 CSR ( )。csr.pem

我取得了 CA 的憑證並將內容放入文件 ( ca.crt) 中。ca.crt以一行開頭,-----BEGIN CERTIFICATE-----然後是雜湊的內容。不過,我仍然需要證書鏈,並在此處查看證書鏈範例http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert

我假設我擁有的privatekey.pem是根憑證(對嗎?),並且ca.crt是該連結中範例鏈中的中間憑證 1。如果是這種情況,我如何/在哪裡獲得其他中間證書?如果我誤解了這一點,我該如何獲取/產生訂單?

答案1

您似乎在這裡混淆了幾個方面。你需要得到的最終結果是

  1. 你的私鑰
  2. 根證書,對於使用相同 CA 的每個人來說都是平等的(這就是你的 ca.crt 看起來的樣子)
  3. a/一些中間證書,通常可以在 CA 網站上找到
  4. 提交的 CSR 的結果,即您的證書。

2-4組成憑證鏈。

答案2

阿德倫,

privatekey.pem 是您向 CA 要求的憑證的私鑰。

根 ca 證書將是來自頒發您的證書的特定 PKI 頂部的證書,並且是自簽名證書。

中間 ca 憑證來自根 CA 下面的子 ca。

例如,example.com 有一個名為 exampleRootCA 的根 CA 和一個名為 exampleSubCA 的子 CA。

exampleSubCA 向您頒發 SSL 憑證 AdronSSL

您的憑證鏈將是 AdronSSL -> exampleSubCA -> exampleRootCA

希望這可以幫助

答案3

以下命令 1-5 有助於建立憑證鏈

  1. 建立RootCA私鑰和自簽名憑證的命令

    openssl req -new -nodes -newkey rsa:2048 -sha256 -days 100 -keyout rootPrivateKey.key -x509 -out rootCACertificate.pem

注意:將 RootCA 憑證從 .crt 格式轉換為 .pem 格式的指令

openssl x509 -outform pem -in rootCACertificate.pem -out rootCACertificate.crt
  1. 建立中間 CA 私鑰及其憑證簽署請求的命令

    openssl req -new -nodes -newkey rsa:2048 -keyout middleCAPrivateKey.key -out middleCACertificateSignRequest.csr

  2. 建立由 RootCA 簽署的中間 CA 憑證的命令

    openssl x509 -req -sha256 -days 100 -in middleCACertificateSignRequest.csr -CA rootCACertificate.pem -CAkey rootPrivateKey.key -CAcreateserial -extfile domain.ext -out middleCACertificate.crtiddle

domain.ext 的內容如下:

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
  1. 創建伺服器私鑰並簽署請求的命令

    openssl req -new -nodes -newkey rsa:2048 -keyout serverPrivateKey.key -out serverSignRequest.csr

  2. 建立由 IntermediateCA 簽署的伺服器憑證的命令

    openssl x509 -req -sha256 -days 100 -in serverSignRequest.csr -CA middleCACertificate.crt -CAkey middleCAPrivateKey.key -CAcreateserial -extfile domain.ext -out serverCertificate.crt

domain.ext 的內容如下:

basicConstraints = CA:FALSE keyUsage = nonRepudiation、digitalSignature、keyEncipherment subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost

注意:將.key 格式的伺服器私鑰轉換為.PEM 格式的指令。

openssl rsa -in serverPrivateKey.key -out serverPrivateKey.pem

這裡根 CA 是自簽名的。因此瀏覽器無法辨識它。為了確保瀏覽器能夠識別,請開啟 IE -> 工具 -> Internet 選項 -> 內容 -> 在受信任的憑證授權單位部分匯入根 CA,在中間憑證授權單位部分匯入中間 CA。

伺服器憑證和伺服器私鑰保存在您執行的網頁服務伺服器中。

一旦您要求網頁,您可以發現伺服器憑證已根據憑證鏈進行驗證

相關內容