Tomcat配置 https SSL证书

Tomcat 1974℃

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证书