Ssl
即使我添加了中間證書,它也不在密鑰庫中
我的任務是在伺服器中設置一個 ssl,該伺服器使用 wildfly,所以我必須創建一個密鑰庫,其中包含我獲得的所有證書、伺服器證書、中間證書和密鑰文件。
首先,我將伺服器證書和中間證書連結起來,然後我使用 openssl 創建了一個 pkc12 文件。然後我使用 keytool 從該 pkc12 文件創建一個密鑰庫。
問題是當我打開密鑰庫文件或 pkc12 文件時,我發現它不包含中間證書,它只有伺服器證書。我以前做過這個程序並且它有效
任何人都知道問題可能是什麼?
額外資訊:中間證書有點舊(從 2010 年開始)並且使用 sha1 並且將在 9 個月後過期,這很奇怪,不像我的伺服器證書是新的並使用 sha256。
顯然您的問題可能是錯誤的中間證書。
確保您擁有正確的中間證書。
- 對伺服器證書執行以下命令:
openssl x509 -noout -text -in server.pem | grep 'CA Issuers'
- 然後打開 grep 找到的 URL:
wget http://url/ -O intermediate.der
- 將下載的證書轉換為 PEM 格式:
openssl x509 -in intermediate.der -inform DER -outform PEM -out intermediate.pem
現在您確定這
intermediate.pem
是您的伺服器證書的正確中間證書。假設鏈中只有一個中間證書。如果還有更多,則需要重複上述命令
intermediate.pem
以獲取intermediate2.pem
等等。執行以下命令來創建 JKS 儲存。
- 創建證書包:
cat server.pem intermediate.pem > bundle.pem
- 創建 pfx/pkcs12 格式包:
openssl pkcs12 -export -out bundle.pfx -inkey server.key -in bundle.pem
- 創建 JKS 密鑰庫:
keytool -importkeystore -srckeystore bundle.pfx -srcstoretype pkcs12 -destkeystore store.jks -deststoretype JKS
- 檢查密鑰庫:
keytool -v -list -keystore store.jks
您應該會看到以下列表:
Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry Alias name: 1 Creation date: May 19, 2019 Entry type: PrivateKeyEntry Certificate chain length: 2 Certificate[1]: Owner: CN=example.com Issuer: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US ... Certificate[2]: Owner: CN=Let's Encrypt Authority X3, O=Let's Encrypt, C=US Issuer: CN=DST Root CA X3, O=Digital Signature Trust Co. ...