HTTP与HTTPS的区别:HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
1.上传证书文件
购买的ssl下载下来后是个压缩包,里面一般包含Apache、IIS、Nginx、Tomcat等几种常见web服务器的证书格式。我们打开Tomcat的目录会发现有一个以.jks后缀的证书和keystorePass.txt密码文件。首先将.jks后缀的证书文件上传到tomcat配置目录,这里我放在TOMCAT/conf/下面。
2.配置server.xml
vim /usr/local/tomcat/conf/server.xml #找到如下内容: <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> --> #修改为: <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/xxx.com.jks" keystorePass="287d987sda" /> #上面keystoreFile是第1步上传的证书文件路径;keystorePass是证书密码,在证书压缩包里就能找到 #为了让原http链接自动跳转到https,需找到这个地方: <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> #改为: <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> #还要找到: <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #改为: <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
3.配置web.xml
vim web.xml #在该文件标签(一般在文件最末尾)后面加上这样一段: <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>
将所有的修改保存退出。重启Tomcat即可。证书生效,并且http访问会自动转为https访问。
转载请注明:零五宝典 » Tomcat配置 https SSL证书