RSA不同服務器需要配置:keystore.jks是私鑰證書庫,cacerts.jks是信任庫。而一般我們生成一個keystore.jks就行,包含服務器密鑰證書、和信任鏈證書,是兩個證書保持一樣。
1.生成對應我們需要的jks文件:
其中s1as使我們要配置的服務器含有私鑰的證書,365是有效期單位天,keyalg申請的整數類型,keysize祕鑰長度,keypass使我們服務器證書密碼,-storepass對應我們生成jks文件的密碼,-dname是我們後面生成證書的主題,這個要和ca給我們辦法吻合。
2.生成證書請求
s1as.csr就是我們想要的證書請求,也可以做成pem形式均可。
3.拿到證書請求,我們去對應ca頒發相應證書,並且獲得ca對應的信任證書,一般二級證書即可滿足需求trustedcertEntry,用來驗證證書的信任關係。
如圖所示,aica就是我們的二級證書,CWCA爲一級證書
先上傳信任鏈證書,注意參數trustcacerts告訴這是一個trustCert,通常上傳二級證書就可以了:
之後上傳證書:
keytool -import -storepass changeit -keypass changeit -alias s1as -file luoni186.p7b -keystore keystore.jks
注意在導入的時候有時會報不是x.509證書錯誤,這個時候通常我們保存成p7b格式,用xca工具轉換一下即可。
之後即可查看當前keystoreNew.jks:
裏面trustedCertEntry即爲我們上傳的信任鏈證書,而privateKeyEntry即爲我們的服務器含有私鑰的證書。
4.若我們想刪除裏面s1as或者自己想重新上傳一張額外的服務器證書。
第一步刪除:
第二步生成密鑰對:
第三步生成證書請求:
第四步上傳證書,查看:
5.修改tomcat配置
找到server.xml,放開8443端口配置,也可以改爲443.若改爲443對應其他端口的 redirectPort也相應的改爲443.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="conf/keystoreNew.jks"
keystorePass="changeit"
truststoreFile="conf/keystoreNew.jks"
truststorePass="changeit"/>
註釋掉
<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->
相應命令:
直接生成jks文件,也可以用轉換工具將pfx文件轉換爲jks。
keytool -genkey -alias s1as -validity 7300 -keyalg RSA -keysize 2048 -keypass changeit -storepass changeit -dname "CN=中文測試,[email protected],OU=研究院,O=航信,L=北京,ST=Beijing,C=CN" -keystore "D:\keystore.jks"
證書請求,指定格式爲pem
keytool -certreq -alias s1as -sigalg SHA1WithRSA -file "D:\req.pem" -keypass changeit -keystore "D:\keystore.jks" -storepass changeit
證書生成密鑰對
keytool -genkey -alias s1as -keystore keystore.jks -storepass changeit -keysize 2048 -keyalg RSA -validity 3650
生成證書請求,格式爲csr
keytool -certreq -alias s1as -file s1as.csr -keystore keystore.jks –storepass changeit
導入,密鑰存在證書
keytool -import -storepass 111111 -keypass 111111 -alias tomcat -file fwdw.p7b -keystore fwdwtomcat.jks
導入可信任證書
keytool -import -trustcacerts -storepass 111111 -alias aica -file aica.cer -keystore fwdwtomcat.jks
導入公鑰證書,私鑰不在jks中
keytool -import -alias s1as -keystore cacerts.jks -storepass changeit -file s1as.cer
查看信息
keytool -list -v -keystore keystore.jks
刪除jks中別名證書
keytool -delete -alias s1as -keystore keystore.jks -storepass changeit