Tomcat下HTTPS(SSL)搭建工作的始末

来源:互联网 发布:python re 匹配域名 编辑:程序博客网 时间:2024/06/17 18:51

        此文章是本人工作记录,写的不好请见谅(不然还能怎样?我又没收费)。主要内容是:介绍HTTPS搭建的整个过程,包含“SSL证书申请方法”、“SSL证书相关介绍”、“Tomcat下配置方法”以及“对外端口的配置方法”。到此,你肯定已经知道这是一篇技术贴,不感兴趣的朋友就绕道吧,下面我要开始讲正式内容了。

        当下,政府网站、大型企/事业网站、电商平台、交易平台等越来越多的网站开始从HTTP转向更安全的HTTPS超文本协议。如果你对HTTPS不够了解,只要记住一个公式: HTTPS=HTTP+SSL。公式不官方,能帮助你理解就行。H TTPS的好处我就不多绍了,简单说就是这个协议会让网站更多安全!所以毋庸置疑,这是趋势。

        我公司在近期的项目中,应客户要求需要使用HTTPS。借此机会,有幸进一步学习。然而在此之前,我对HTTPS仅限于平时看到的,查过一些资料,并没有自己亲自动手搭建过。对此项任务充满未知,在汇报工作时给自己预留了1-2周的时间(实践证明时间充足)。

总体步骤:

S1:根据实际情况确定购买的SSL服务类型

S2:找SSL代理商,购买服务

S3:提供客户资料,用于申请证书

S4:等待审核,一般为2-5天左右

S5:收到邮箱返回证书代码

S6:生成证书

S7:配置TOMCAT

S8:配置兼容性

S9:配置域名访问协议

 

        任务通知下来,我像往常一样淡定的、微笑着开始了一天的工作。鬼知道我心里的波涛汹涌。废话不说,赶紧回座位补习姿势。成果如下:

STEP1:根据实际情况确定购买的SSL服务类型

1.   SSL证书分类,按照安全级别分3类,这个表格应该能一目了然。

 

2.   按照使用范围分为3类

单域名、多域名、通配符域名。

简单解释一下:多域名指一个证书可以被多个域名使用,通配符是指缀名相同的二级域名(如:x1.jschina.com.cn,x2.jschina.com.cn)都可用。

3.   证书品牌

赛门铁克(Symantec)是 SSL/TLS 证书的领先提供商,这个应该是最好最贵的了。

 Comodo科摩多

GeoTrust是全球第二大数字证书颁发机构。

等等其他。。。

 

STEP2:找SSL代理商,购买服务

了解差不多了,上网找服务商,汇报完成购买。结合客户的要求,我们给客户选定了“DV SSL”的“通配符”版本。

STEP3:提供客户资料,用于申请证书

STEP4:等待审核,一般为2-5天左右

STEP5:收到邮箱返回证书代码

            问客户要企业相关资料用于注册,在服务商的帮助下得到BEGIN PRIVATE KEY。要保存好这个KEY以后有大用处。申请完成后,进行漫长的等待(证书厂商会打电话到客户公司去确认身份,所以信息务必填写正确)。

 STEP6:生成证书

收到邮件后,得到证书码  CERTIFICATE,通过服务商的方法生成证书 pfx,生成证书的时候会得到自己设置密码,记住它,有大用处。

本文很多情况下在服务商的帮助下完成,论一个好服务商的重要性。生成证书的时候比较麻烦,耐心点。

STEP7   配置TOMCAT

         得到证书后,可以说离成功已经不远了。但是,注意啦注意啦,前面是在服务商的帮助下完成的,下面就得靠自己动手了。我们服务是在TOMCAT下搭建的,下面介绍的是TOMCAT下的配置,其他平台搭建可参考对应的方法。

    • 第一步:将证书 pfx拷贝到服务器上和TOMCAT同目录(也可视自己情况而定)。我们服务器操作系统是Linux,证书位置:/appdata/java/xxx.pfx
    • 第二步:修改TOMCAT配置:找到 apache-tomcat-7.0.47/conf/server.xml,<Connector port="8443" 标签,增加如下属性

keystoreFile="/appdata/java/xxx.pfx"

keystoreType="PKCS12"

keystorePass="pfx格式证书的密码"

  •  此处,你要知道http默认端口是80,https端口是443。所以你需要将8443端口改为443,才能直接输入域名访问。

此时,若你着急忙慌的重启TOMCAT,你会发现已经能够启动,而且域名https也能够使用。不要高兴的太早,还没有大功告成。经过测试:360、谷歌可以用了,但IE、火狐等浏览器无法使用,这就尴尬了。。。

STEP8 配置兼容性

         完成最后一步,还是找到server.xml文件只要修改,在刚才的地方加上一段: 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" 

最终<Connectorport="443" 这一段完整配置如下:

<Connectorport="8088" protocol="HTTP/1.1"  URIEncoding="UTF-8"

                   maxThreads="150"SSLEnabled="true" scheme="https" secure="true"

                   keystoreFile="/appdata/java/xxx.pfx "

                   keystoreType="PKCS12"

                   keystorePass="pfx格式证书的密码"

                   clientAuth="false"sslProtocol="TLS" 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你已经可以通过 https://你的域名来访问你的网站。

但你会发现, 如果你只在浏览器里输入你的域名,还是会跳到http而不是https,若想实现此效果,接着往下看。

STEP9 配置域名访问协议

         操作需要2个步骤:

  • n  配置server.xml文件,

在server.xml中找到http的端口配置

<Connectorport="80" protocol="HTTP/1.1"

              connectionTimeout="20000" URIEncoding="UTF-8"

               redirectPort="8443"/>

将此处的8443,改为443

<Connectorport="80" protocol="HTTP/1.1"

              connectionTimeout="20000" URIEncoding="UTF-8"

               redirectPort="443"/>

 

  • n  配置apache-tomcat-7.0.47/conf/web.xml文件

找到</welcome-file-list>,然后在后面追加

 

<login-config> 

    <!-- Authorization settingfor SSL -->  

  <auth-method>CLIENT-CERT</auth-method>  

    <realm-name>Client CertUsers-onlyArea</realm-name>  

</login-config>  

<security-constraint>  

    <!-- Authorization settingfor 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>  

 

重启TOMCAT访问,确认没有问题,你就可以歇息了。

0 0
原创粉丝点击