Tomcat 配置 SSL

jopen 10年前

1. 创建 keystore 文件

keytool -genkey -alias tomcat -keyalg RSA -validity 20000

keytool是jdk的一个命令,所以要先安装jdk。 其中参数-validity为证书有效天数,这里我们写的大些20000天。这样就在当前目录下创建了一个 .keystore 文件,并复制到tomcat/conf下面

2. 配置 Tomcat 以使用 keystore 文件

打开 server.xml 找到下面被注释的这段

<!--  <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  maxThreads="150" scheme="https" secure="true"  clientAuth="false" sslProtocol="TLS" />  -->

去掉注释,并将内容改为

<Connector port="8443"             acceptCount="100"             disableUploadTimeout="true"              enableLookups="false"             SSLEnabled="true"             maxThreads="150"              scheme="https"              secure="true"             clientAuth="false"              sslProtocol="TLS"             keystoreFile="conf/.keystore"             keystorePass="创建keystore时使用的密码"             protocol="org.apache.coyote.http11.Http11NioProtocol"/>

3. 配置应用使用 SSL

打开应用的 web.xml 文件,增加配置如下:

<security-constraint>      <web-resource-collection>          <web-resource-name>项目名</web-resource-name>          <url-pattern>/*</url-pattern>      </web-resource-collection>      <user-data-constraint>          <transport-guarantee>CONFIDENTIAL</transport-guarantee>      </user-data-constraint>  </security-constraint>

将 URL 映射设为 /* ,这样你的整个应用都要求是 HTTPS 访问,而 transport-guarantee 标签设置为 CONFIDENTIAL 以便使应用支持 SSL。如果你希望关闭 SSL ,只需要将 CONFIDENTIAL 改为 NONE 即可。

官方文档: http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html