============================
By rambo
一、简介
小程序出来,为了不重复造轮子,需要使用https协议,怎么办?tomcat其实很早就支持通讯协议的转化。
SSL证书类型
DV SSL证书(域名验证型):只验证域名所有权,适合个人网站、博客等站点使用;
IV SSL证书(个人验证型):验证网站所属个人身份,适合自媒体、个人品牌站点使用;
OV SSL证书(企业验证型):验证网站所属单位身份,适合企业级用户使用;
EV SSL证书(扩展验证型):扩展验证网站所属单位身份,适合高度信任的企业级用户使用。CONNECTOR 的配置
一个 Connector 即一个对外界开放的端口,简单理解就是大部分网络服务程序都会遇到的IpAddress:Port 的组合,比如 192.168.0.10:8080 就是一个端口,当然在 Connector 里可以定义的内容要丰富得多,即 Connector 这个 XML 节点里可以加上许多属性。下面列举一下常用的:
enableLookups:(default=true) 是否允许反向解析访客的IP地址,当你的应用程序使用 request.getRemoteHost() 时如果只需要IP地址,建议禁用此项,这样能节省反向域名解析的时间。
maxPostSize:(default=2097152 即2MB) 最大允许 POST 上传的数据大小(单位为:字节),对于一般网站来说,比如有写评论写文章的网站,默认的2MB已经足够,不过如果网站带有图片甚至文件上传功能,则需要根据具体情况来定。
protocol:连接器的类型,tomcat 6 有如下几种选择 org.apache.coyote.http11.Http11Protocol:简写为 “HTTP/1.1″,这是默认的连接器,一个访客网络连接需要一个线程,并发性能比较低。
org.apache.coyote.http11.Http11NioProtocol:NIO连接器,一个由非阻塞的socket工作模式构成的连接器,并发性能良好,纯Java实现。
org.apache.coyote.http11.Http11AprProtocol:APR连接器,所谓 APR 就是网络上最多服务器使用的 Web 服务程序 Apache Http Server 所使用的库,Tomcat 建议在生产环境使用,具体方法下面会介绍。
redirectPort:当用户访问非https的资源而该资源又需要https方式访问时,tomcat会自动重定向到https端口,一般https使用 TCP 443端口,所以一般取值”443″。
SSLEnabled:(default=false),设置当前连接器是否使用安全SSL传输,如果设置为”true”,则应该同时设置下面两个属性: scheme=”https” (default=http) 可以设置为 http 或者 https。 secure=”true” (default=false)。
adress:连接器所绑定的IP地址,当一台服务器存在多个ip地址时可以指定其中的需要绑定的一个,默认不设置该属性的值表示绑定当前服务器的所有ip地址。
compressableMimeType:(default=”text/html,text/xml,text/plain”) 指定需要GZIP压缩的资源的类型。
compression:(default=off) 是否启用GZIP压缩,可以取值 on/off/force,设置为on之后会对 compressableMimeType 属性指定的资源类型启用GZIP压缩。
connectionTimeout:(default=”60000″) 当访客网络连接后,服务器等待第一行Request头出现的时间。单位是毫秒。
executor:指定当前连接器使用的线程池的名称,如果指定,则忽略其他针对线程数量的设置,比如 maxThreads。
maxThreads:(default=200) 最多可创建线程的数量。
port=”80″:绑定端口。
keepAliveTimeout:(default=connectionTimeout),访客完成一次请求后维持网络连接的时间。
二、技术经验
- 使用jdk的keytool生成keystore
cd /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin - keytool -genkey -alias i1510_v1.keystore -keyalg RSA -validity 20000 -keystore /Users/rambo/Downloads/i1510_v1.keystore
- “-validity 36500”含义是证书有效期,36500表示100年,默认值是90天
密码:bobolnear
您的名字与姓氏是什么?(很重要,正式环境应为域名)
您的组织单位名称是什么?
您的组织名称是什么?
您所在的城市或区域名称是什么?
您所在的省/市/自治区名称是什么?
该单位的双字母国家/地区代码是什么?
CN=127.0.0.1, OU=i1510, O=i1510, L=xiamen, ST=fujian, C=CN是否正确?
- 配置tomcat(版本:apache-tomcat-7.0.61) conf文件
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150"
SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/Users/rambo/Downloads/i1510_v1.keystore" keystorePass="bobolnear" />
- 原来http的访问地址:http://127.0.0.1:8099/i1510_v1/common/login/index.jsp改为https://127.0.0.1:8443/i1510_v1/common/login/index.jsp
在支持小程序时:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="bin/keystore.jks" keystorePass="123456"
clientAuth="false" sslProtocol="TLS" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" SSLCipherSuite="ECDHE-RSA-AES128-GC"/>