網絡--keytool CA簽名SSL證書(收費)

本文主要介紹keytool CA簽名SSL證書(收費),點擊查看keytool自簽名SSL證書(免費)以及私鑰簽名、公鑰驗籤流程

最近給銀行做一個系統,雖說是給行內使用的,但是系統要同時支持內外網方式登錄,採用https(http+ssl)傳輸協議,經過SSL加密信息,防止用戶信息被截獲。

因此花了一段時間研究這方面的知識,主要從JDK自帶keytool入手,研究如何通過keytool最終得到CA簽名的SSL證書。

百度百科【CA】
證書頒發機構(CA, Certificate Authority)即頒發數字證書的機構。是負責發放和管理數字證書的權威機構,並作爲電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。科

百度百科【SSL】
Secure Sockets Layer 安全套接層及其繼任者傳輸層安全(Transport Layer Security,TLS)是爲網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密。

對於JDK自帶的keytool指令,不論Windows還是Linux,該指令文件存放在JAVA_HOME/bin目錄下,使用的前提是系統已搭建好JDK環境且配置JAVA環境變量。

正文以Linux操作爲例,/usr/local/keys/是我個人證書文件存放路徑,實際請自行替換相關路徑。

相關文件

證書庫www.justinqin.com_keystore.keystore
證書請求文件www.justinqin.com_certreq.csr
根證書root_cert.cer
簽名證書www.justinqin.com_cert.cer

目錄

一、生成證書庫

二、生成證書請求文件

三、申請根證書、簽名證書

四、根證書、簽名證書導入證書庫


一、生成證書庫

keytool -genkeypair \
        -alias www.justinqin.com \
        -keyalg RSA \
        -keysize 2048 \
        -keypass mypassword \
        -sigalg SHA256withRSA \
        -dname "cn=www.justinqin.com,ou=justinqin,o=qjg,l=Shenzhen,st=Guangdong,c=CN" \
        -validity 1095 \
        -keystore /usr/local/keys/www.justinqin.com_keystore.keystore \
        -storetype JKS \
        -storepass mypassword

==================參數含義=======================
-genkeypair
非對稱密鑰(密鑰對,私鑰簽名、公鑰驗籤),對稱密鑰爲-gendeskey(單個密鑰)

-alias www.justinqin.com
證書庫別名爲www.justinqin.com

-keyalg RSA
加密算法爲RSA,加密算法可以分爲對稱加密、不對稱加密和不可逆加密算法
對稱加密算法:加解密都用的同一把密鑰,如DES、AES
不對稱加密算法:使用密鑰對即公鑰、私鑰進行加解密,如RSA SHS
不可逆加密算法:加密過程中不需要密鑰,明文加密成密文後不可逆,如MD5
MD5、SHS的加密都是用了哈希加密算法

-keysize 2048
密鑰長度,位數越大越安全,但同時加解密時間成正比增長

-keypass mypassword
私鑰密碼爲mypassword

-sigalg SHA256withRSA
簽名算法爲SHA256withRSA
keyalg=RSA時,sigalg可選MD5withRSA、SHA1withRSA、SHA256withRSA、SHA384withRSA、SHA512withRSA
keyalg=DSA時,sigalg可選SHA1withDSA、SHA256withDSA

 -dname "cn=www.justinqin.com,ou=justinqin,o=qjg,l=Shenzhen,st=Guangdong,c=CN"
證書相關信息
CN=名字與姓氏/域名
OU=組織單位名稱
O=組織名稱
L=城市或區域名稱
ST=州或省份名稱
C=單位的兩字母國家代碼

-keystore /usr/local/keys/www.justinqin.com_keystore.keystore
生成的證書庫文件爲www.justinqin.com_keystore.keystore,存儲位置/usr/local/keys/

-validity 1095
證書有效天數爲3年=1095

-storetype JKS
證書庫類型爲JKS,JDK1.9以前默認JKS,JDK1.9及以後默認PKCS12

-storepass mypassword
證書庫密碼爲mypassword

二、生成證書請求文件

keytool -certreq \
        -keyalg RSA \
        -alias www.justinqin.com \
        -keystore /usr/local/keys/www.justinqin.com_keystore.keystore \
        -storetype JKS \
        -storepass mypassword \
        -file /usr/local/keys/www.justinqin.com_certreq.csr

==================參數含義=======================
-certreq
證書請求文件

-file /usr/local/keys/www.justinqin.com_certreq.csr
生成的證書請求文件爲www.justinqin.com_certreq.csr,存儲位置/usr/local/keys/

三、申請根證書、簽名證書

用戶提供證書請求文件,向CA申請根證書、簽名證書流程
用戶—>證書請求文件 —>CA(收錢)—>根證書、簽名證書—>用戶

四、根證書、簽名證書導入證書庫

根證書root_cert.cer—>證書庫www.justinqin.com_keystore.keystore

keytool -import -trustcacerts \
        -keystore /usr/local/keys/www.justinqin.com_keystore.keystore \
        -storepass mypassword \
        -alias root_cert \
        -file root_cert.cer

簽名證書www.justinqin.com_cert.cer—>證書庫www.justinqin.com_keystore.keystore

keytool -import -trustcacerts \
        -keystore /usr/local/keys/www.justinqin.com_keystore.keystore \
        -storepass mypassword \
        -alias www.justinqin.com \
        -file /usr/local/keys/www.justinqin.com_cert.cer

=========================證書查看相關指令==============
證書庫www.justinqin.com_keystore.keystore查看

keytool -list -v \
        -keystore /usr/local/keys/www.justinqin.com_keystore.keystore \
        -storepass mypassword


證書請求文件keys/www.justinqin.com_certreq.csr查看

keytool -printcertreq  -file /usr/local/keys/www.justinqin.com_certreq.csr


CA根證書root_cert.cer查看

keytool -printcert -file root_cert.cer


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章