【SSL】使用Keytool工具生成证书及签名完整步骤
生活随笔
收集整理的這篇文章主要介紹了
【SSL】使用Keytool工具生成证书及签名完整步骤
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- jdk 1.8
- OS:redhat 7.0
- linux 命令的換行符為 \。
- window 命令的換行符為 ^。本文中的命令在 redhat 上進行的測試。如果使用windows時,將下面的命令中的 \ 替換為 ^ 。
使用Keytool工具生成證書及簽名完整步驟
下面以為”www.mydomain.com“域名制作數字證書為例進行操作。
創(chuàng)建證書庫(keystore)及證書(Certificate)
命令如下:
keytool -genkeypair \-alias www.mydomain.com \-keyalg RSA \-keysize 4096 \-keypass mypassword \-sigalg SHA256withRSA \-dname "cn=www.mydomain.com,ou=xxx,o=xxx,l=Beijing,st=Beijing,c=CN" \-validity 3650 \-keystore www.mydomain.com_keystore.jks \-storetype JKS \-storepass mypassword解釋:
- keytool 是jdk提供的工具,該工具名為”keytool“
- -alias www.mydomain.com 此處”www.mydomain.com“為別名,可以是任意字符,只要不提示錯誤即可。因一個證書庫中可以存放多個證書,通過別名標識證書。
- -keyalg RSA 此處”RSA“為密鑰的算法。可以選擇的密鑰算法有:RSA、DSA、EC。
- –keysize 4096 此處”4096“為密鑰長度。keysize與keyalg默認對應關系:
2048 (when using -genkeypair and -keyalg is “RSA”)
1024 (when using -genkeypair and -keyalg is “DSA”)
256 (when using -genkeypair and -keyalg is “EC”) - -keypass mypassword 此處”mypassword “為本條目的密碼(私鑰的密碼)。最好與storepass一致。
- -sigalg SHA256withRSA 此處”SHA256withRSA“為簽名算法。keyalg=RSA時,簽名算法有:MD5withRSA、SHA1withRSA、SHA256withRSA、SHA384withRSA、SHA512withRSA。keyalg=DSA時,簽名算法有:SHA1withDSA、SHA256withDSA。此處需要注意:MD5和SHA1的簽名算法已經不安全。
- -dname “cn=www.mydomain.com,ou=xxx,o=xxx,l=Beijing,st=Beijing,c=CN” 在此填寫證書信息。“CN=名字與姓氏/域名,OU=組織單位名稱,O=組織名稱,L=城市或區(qū)域名稱,ST=州或省份名稱,C=單位的兩字母國家代碼”
- -validity 3650 此處”3650“為證書有效期天數。
- -keystore www.mydomain.com_keystore.jks 此處”www.mydomain.com_keystore.jks“為密鑰庫的名稱。此處也給出絕對路徑。默認在當前目錄創(chuàng)建證書庫。
- -storetype JKS 此處”JKS “為證書庫類型。可用的證書庫類型為:JKS、PKCS12等。jdk9以前,默認為JKS。自jdk9開始,默認為PKCS12。
- -storepass mypassword 此處”mypassword “為證書庫密碼(私鑰的密碼)。最好與keypass 一致。
說明:
上述命令,需要將 -dname 參數替換(尤其時域名要寫對)、密碼更改即可,其它可保持不變。
生成證書簽名請求(CSR)
命令如下:
keytool -certreq -keyalg RSA \-alias www.mydomain.com \-keystore www.mydomain.com_keystore.jks \-storetype JKS \-storepass mypassword \-file www.mydomain.com_certreq.csr解釋:
-file www.mydomain.com_certreq.csr 此處”www.mydomain.com_certreq.csr “為證書簽名請求文件。
說明:
將”www.mydomain.com_certreq.csr “文件發(fā)送給證書簽名機構,然后等待證書簽名機構將簽名的證書發(fā)回,再進行下一步。
將已簽名的證書導入證書庫
如果到了這步,應該會拿到兩個證書。一個是簽名機構的根證書(假定為GlobalSign_cert.cer),一個是www.mydomain.com的已簽名證書(假定為www.mydomain.com_cert.cer)。兩個證書均導入到證書庫(www.mydomain.com_keystore.jks)中。
導入簽名機構的根證書:
keytool -import -trustcacerts \-keystore www.mydomain.com_keystore.jks \-storepass mypassword \-alias root_GlobalSign \-file GlobalSign_cert.cer說明:
alias和file兩個參數進行替換。
導入www.mydomain.com的已簽名證書
keytool -import -trustcacerts \-keystore www.mydomain.com_keystore.jks \-storepass mypassword \-alias www.mydomain.com \-file www.mydomain.com_cert.cer說明:
alias參數要與生成時一致,file參數進行替換。
輔助命令
查看證書庫
keytool -list -v \-keystore www.mydomain.com_keystore.jks \-storepass mypassword查看證書簽名請求
keytool -printcertreq -file www.mydomain.com_certreq.csr查看已簽名證書
keytool -printcert -file GlobalSign_cert.cer keytool -printcert -file www.mydomain.com_cert.cer總結
以上是生活随笔為你收集整理的【SSL】使用Keytool工具生成证书及签名完整步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 颧骨突出的女生怎么办
- 下一篇: Tomcat SSL/HTTPS 单向认