**html
一,使用globalsign購買的證書java
準備如下證書申請文件提交給globalsign:web
KeyStore.jks算法
mydomain.csrapache
globalsign將證書用email頒發給客戶:api
wms.cmbi.com.hk.pem,其實就是服務器證書,將其複製後爲server.cer,裏面內容如:瀏覽器
-----BEGIN CERTIFICATE----- tomcat
-----END CERTIFICATE----- 安全
ovroot.cer,中級證書(開始一直缺乏這個文件,致使配置出錯,諮詢globalsign後他們提供了,也是-----BEGIN CERTIFICATE-----。。。)服務器
1,生成keystore.jks
D:\ssl>keytool -genkey -alias wms.cmbi.com.hk -keyalg RSA -keystore KeyStore. -keysize 2048 輸入keystore密碼:123 再次輸入新密碼: 123 您的名字與姓氏是什麼? [Unknown]: CMBI 您的組織單位名稱是什麼? [Unknown]: CMBI 您的組織名稱是什麼? [Unknown]: CMB International Capital Holdings Corporation Limited 您所在的城市或區域名稱是什麼? [Unknown]: Hong Kong 您所在的州或省份名稱是什麼? [Unknown]: Hong Kong 該單位的兩字母國家代碼是什麼 [Unknown]: HK CN=CMBI, OU=CMBI, O=CMB International Capital Holdings Corporation Limited, L ng Kong, ST=Hong Kong, C=HK 正確嗎? [否]: Y CN=CMBI, OU=CMBI, O=CMB International Capital Holdings Corporation Limited, L ng Kong, ST=Hong Kong, C=HK 正確嗎? [否]: Y
2,根據keystore文件生成csr文件
D:\ssl>keytool -certreq -alias wms.cmbi.com.hk -keystore KeyStore.jks -file m main.csr 輸入keystore密碼:123
3,先備份下KeyStore.jks文件,而後開始導入中級證書ovroot.cer到KeyStore.jks中,(注意,此處的alias就是evroot,密碼我是與jks文件同樣的,即123)
C:\Users\Joyluo\Desktop\global>keytool -import -trustcacerts -keystore KeyStore. jks -alias evroot -file ovroot.cer 輸入密鑰庫口令: 證書已添加到密鑰庫中
4,將服務器證書server.cer導入到KeyStore.jks中,此處alias應該與jks生成時的一致;
C:\Users\Joyluo\Desktop\global>keytool -import -trustcacerts -keystore KeyStore. jks -alias wms.cmbi.com.hk -file server.cer 輸入密鑰庫口令: 證書回覆已安裝在密鑰庫中
完成上述後,KeyStore.jks已經包含了globalsign頒發的證書的信息,只要將這個jks文件拷貝到tomcat的config文件下便可;
5,配置tomcat7的server.xml
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 443 --> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${tomcat}/config/KeyStore.jks" keystorePass="123" clientAuth="false" sslProtocol="TLS"/>
6,此時https能夠訪問,可是http仍是能夠訪問,須要將http跳轉到https;
tomcat/config/server.xml,重定向到443端口;
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
tomcat/config/web.xml,在文件末尾加上
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> </web-app>
總結:將購買的證書信息添加到jks文件中,之後要遷移服務器,直接拷貝這個jks文件便可;
新版本的Chrome和firefox可能會出現弱密鑰問題,解決方法:
tomcat/server.xml中,443connector 加上
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
重啓tomcat便可;
完成;
以前的各類嘗試
C:\Users\Joyluo\Desktop>keytool -import -alias wms -file wms.cmbi.com.hk.cer -noprompt -trustcacerts -storetype jks -keystore cacerts -storepass changeit 證書已添加到密鑰庫中
二,使用keytool本身生成的證書
1,生成wms文件
C:\Users\Joyluo>keytool -genkey -alias wms -keyalg RSA -keystore d:/wms 輸入密鑰庫口令: 密鑰庫口令過短 - 至少必須爲 6 個字符 輸入密鑰庫口令: 再次輸入新口令: 您的名字與姓氏是什麼? [Unknown]: wms.cmbi.com.hk 您的組織單位名稱是什麼? [Unknown]: softbi.com 您的組織名稱是什麼? [Unknown]: softbi 您所在的城市或區域名稱是什麼? [Unknown]: shenzhen 您所在的省/市/自治區名稱是什麼? [Unknown]: guangdong 該單位的雙字母國家/地區代碼是什麼? [Unknown]: ZH CN=wms.cmbi.com.hk, OU=softbi.com, O=softbi, L=shenzhen, ST=guangdong, C=ZH是否 正確? [否]: y 輸入 <wms> 的密鑰口令 (若是和密鑰庫口令相同, 按回車): 再次輸入新口令:
2,將wms文件的信息導入到wms.crt文件,會自動生成crt文件;
C:\Users\Joyluo>keytool -export -file d:/wms.crt -alias wms -keystore d:/wms 輸入密鑰庫口令: 存儲在文件 <d:/wms.crt> 中的證書
3,將crt文件的信息導入到cacerts文件中,開始用原來的密鑰出錯,改成了changeit,就能夠了;
C:\Users\Joyluo>keytool -import -keystore D:\worktools\Java7\jre7\lib\security\c
acerts -file d:/wms.crt
輸入密鑰庫口令:
keytool 錯誤: java.io.IOException: Keystore was tampered with, or password was i
ncorrect
C:\Users\Joyluo>keytool -import -keystore D:\worktools\Java7\jre7\lib\security\c acerts -file d:/wms.crt 輸入密鑰庫口令: 全部者: CN=wms.cmbi.com.hk, OU=softbi.com, O=softbi, L=shenzhen, ST=guangdong, C =ZH 發佈者: CN=wms.cmbi.com.hk, OU=softbi.com, O=softbi, L=shenzhen, ST=guangdong, C =ZH 序列號: 6244aa0 有效期開始日期: Fri Oct 09 10:38:36 CST 2015, 截止日期: Thu Jan 07 10:38:36 CST 2016 證書指紋: MD5: A6:68:E6:4F:EF:89:85:B3:79:05:9F:80:12:79:78:A5 SHA1: 2D:D8:02:8F:E1:59:6F:31:4F:D0:45:B2:8E:78:AD:C5:39:0D:14:F1 SHA256: FE:71:BC:26:E2:63:F3:EA:1A:17:02:C0:2D:C1:00:6A:E4:DC:5A:86:DC: 5B:07:90:50:4B:44:CB:DC:61:A4:4A 簽名算法名稱: SHA256withRSA 版本: 3 擴展: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: E7 1F A4 36 15 37 DE CE 0D BD 3E 98 FD E8 1F 86 ...6.7....>..... 0010: 0A 03 07 FB .... ] ] 是否信任此證書? [否]: y 證書已添加到密鑰庫中
4,配置tomcat/config/server.xml;
<Connector port="8080" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="d:\wms" keystorePass="mmmm123" />
https訪問
點擊繼續瀏覽後,;
完成
********************
之後更新時,先刪除原來的證書,而後導入新的證書
keytool -list -keystore cacerts
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts
**