我一直在嘗試整合一個憑證鏈。我有提交給憑證授權單位/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
您似乎在這裡混淆了幾個方面。你需要得到的最終結果是
- 你的私鑰
- 根證書,對於使用相同 CA 的每個人來說都是平等的(這就是你的 ca.crt 看起來的樣子)
- a/一些中間證書,通常可以在 CA 網站上找到
- 提交的 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 有助於建立憑證鏈
建立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
建立中間 CA 私鑰及其憑證簽署請求的命令
openssl req -new -nodes -newkey rsa:2048 -keyout middleCAPrivateKey.key -out middleCACertificateSignRequest.csr
建立由 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
創建伺服器私鑰並簽署請求的命令
openssl req -new -nodes -newkey rsa:2048 -keyout serverPrivateKey.key -out serverSignRequest.csr
建立由 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。
伺服器憑證和伺服器私鑰保存在您執行的網頁服務伺服器中。
一旦您要求網頁,您可以發現伺服器憑證已根據憑證鏈進行驗證