因为项目需要,整体网络请求转向https,以前没弄过,于是遇到一些问题,不过最后终于是解决了。
服务器采用的是阿里云ECS,CentOS,Tomcat6.
先是搜索了一堆https证书安装的网页,各种鱼龙混杂,后来发现各大运营商都有自己的证书服务,在无法鉴别其他证书运营商资质的情况下,还是先用服务器所属的运营商。
于是,申请了阿里云免费的证书先试用,按阿里云的说明进行了配置。
一番折腾下来,结果https://+域名,访问不了网页。这里回头看来蛮搞笑,完全是啥都不懂导致的。
经过度娘之后,多方尝试,终于实现https://+域名和http://+域名都能正常访问的配置。
好了,就是Tomcat的Server.xml这个文件。
按照一般配置的“教学”和阿里云配置说明,修改后的内容如下:
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/root/.....jks"
keystorePass="......"/>
但这样只能采用https://www….com:8443方式来访问。
SSL的标准访问端口为443,为了去掉8443这个小尾巴,因此,需要做如下三处配置:
1. <Connector port="80" maxHttpHeaderSize="8192"
maxThreads="500" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
将其中的redirectPort端口号改为:443
2. <Connector
port="443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100" scheme="https"
secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="...."
keystorePass="...." />
3.AJP 1.3 Connector定义的地方,修改redirectPort为443,如下:
<Connector port="8009"
enableLookups="false" redirectPort="443" protocol="AJP/1.3" />
重新启动Tomcat就可以了。
这里感谢alex.chow。
参考链接http://blog.csdn.net/chow__zh/article/details/8843594