1.crt、key和jks之間的轉換
##.crt和.key轉換.jks (tomcat server.xml)
openssl pkcs12 -export -in server.crt -inkey server.key > server.p12
[mykey]
keytool -importkeystore -keyalg EC -srckeystore server.p12 -destkeystore server.jks -srcstoretype pkcs12
[mykey]
##.jks轉換.crt和.key
1. 從JKS轉換到PKCS12keytool
keytool -importkeystore -srckeystore D:\server.jks -destkeystore D:\keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass [mykey] -deststorepass [mykey] -srcalias 1 -destalias 1 -srckeypass [mykey] -destkeypass [mykey] –noprompt
2.從PKCS12轉換成PEM格式openssl pkcs12 (openssl要在linux上使用)
openssl pkcs12 -in D:\keystore.p12 -out D:\server.pem -passin pass:[mykey] -passout pass:[mykey]
3. 提取證書
openssl pkcs12 -in keystore.p12 -nokeys -clcerts -out server-ssl.crt
openssl pkcs12 -in keystore.p12 -nokeys -cacerts -out gs_intermediate_ca.crt
Enter Import Password:[mykey]
server-ssl.crt是SSL證書,gs_intermediate_ca.crt是中級證書,兩個合併到一起纔是nginx服務器所需要的證書
合併證書: cat server-ssl.crt gs_intermediate_ca.crt >server.crt
此時server.crt是一個完成的證書。
4. 提取私鑰
openssl pkcs12 -in keystore.p12 -nocerts -nodes -out server.key
Enter Import Password:[mykey]
2.crt、key和p12之間的轉換
##.crt和.key合成.p12
1.先將證書鏈文件放到證書文件後面:
cat server-ssl.crt gs_intermediate_ca.crt >server.crt
2.用合成後的crt和key轉換成PFX格式(.p12)的證書文件
openssl pkcs12 -export -in server.crt -inkey server.key > server.p12
key [mykey]
#驗證:測試解開後的文件和合成前的文件一一對應:
##.p12解開成.crt和.key
##分離出普通PRIVATE KEY
1.分離出ssl證書
openssl pkcs12 -in server.p12 -nokeys -clcerts -out server-ssl.crt
2.分離出證書鏈
openssl pkcs12 -in server.p12 -nokeys -cacerts -out gs_intermediate_ca.crt
3.分離出.key
openssl pkcs12 -in server.p12 -nocerts -nodes -out server.key
##分離出RSA PRIVATE KEY
1.先轉換成pem(裏面包含證書、證書鏈和PRIVATE KEY)
openssl pkcs12 -in server.p12 -nodes -out server.pem
2.pem分離出證書
openssl x509 -in server.pem -out server.crt
3.pem分離出RSA key
openssl rsa -in server.pem -out server.key
writing RSA key
md5驗證:得出的字符串相同則crt和key是配對的
openssl x509 -noout -modulus -in server.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5