**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
**