zoukankan      html  css  js  c++  java
  • 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:UsersJoyluoDesktopglobal>keytool -import -trustcacerts -keystore KeyStore.
    jks -alias evroot -file ovroot.cer
    输入密钥库口令:
    证书已添加到密钥库中

    4,将服务器证书server.cer导入到KeyStore.jks中,此处alias应该与jks生成时的一致;

    C:UsersJoyluoDesktopglobal>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:UsersJoyluoDesktop>keytool -import -alias wms -file wms.cmbi.com.hk.cer -noprompt -trustcacerts -storetype jks -keystore cacerts -storepass changeit
    证书已添加到密钥库中

    二,使用keytool自己生成的证书

    1,生成wms文件

    C:UsersJoyluo>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:UsersJoyluo>keytool -export -file d:/wms.crt -alias wms -keystore d:/wms
    输入密钥库口令:
    存储在文件 <d:/wms.crt> 中的证书

    3,将crt文件的信息导入到cacerts文件中,开始用原来的密钥出错,改为了changeit,就可以了;

    C:UsersJoyluo>keytool -import -keystore D:worktoolsJava7jre7libsecurityc
    acerts -file d:/wms.crt
    输入密钥库口令:
    keytool 错误: java.io.IOException: Keystore was tampered with, or password was i
    ncorrect


    C:UsersJoyluo>keytool -import -keystore D:worktoolsJava7jre7libsecurityc 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

    **

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    设计算法,根据输入的学生人数和成绩建立一个单链表,并累计成绩不及格的人数。
    git的使用,看这一篇就够啦!(包含github、码云、gitlab)
    设单链表的数据为互不相等的整数,建立一个单链表,并设计一个算法,找出单链表中元素值最大 的结点。
    “Failed to get convolution algorithm. This is probably because cuDNN failed to initialize”错误的解决办法
    回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文。
    怎么搭建一个5T的私有云盘
    基于大数据分析与可视化的疫情信息发布系统
    如何给oneindex网盘增加评论、密码查看、read me,头提示功能。
    解析原理:微信自动查找优惠券做返利机器人是怎么实现的
    【Swift】接入阿里云一键登录(源码,可以直接贴走)
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4885216.html
Copyright © 2011-2022 走看看