Tomcat7配置globalsign购买的证书

**

 自签证书和商业CA证书最大的区别,没有根证书,这个根证书没植入各大浏览器和各个移动平台。 所以很多浏览器访问https时就会报不可信任站点, 也就没有建立加密通道,不能很好的保护信息的安全

一,使用globalsign购买的证书

准备以下证书申请文件提交给globalsign:

KeyStore.jks

mydomain.csr

globalsign将证书用email颁发给客户:

wms.cmbi.com.hk.pem,其实就是服务器证书,将其复制后为server.cer,里面内容如:

-----BEGIN CERTIFICATE----- 

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

 

**

posted @ 2015-10-16 14:29  野鹤闲人  阅读(1394)  评论(0编辑  收藏  举报