vlambda博客
学习文章列表

基于linux服务器在Tomcat安装SSL证书

前提条件:

  • 您的Tomcat服务器上已经开启了443端口(HTTPS服务的默认端口)。

  • 已安装OpenSSL工具。

  • 已下载Tomcat服务器所需要的证书文件。

操作步骤:

1.解压已下载保存到本地的Tomcat证书文件。

  解压后您将看到文件夹中有2个文件,您可为两个证书文件重命名。

  证书文件(domain name.pfx):以.pfx为后缀或文件类型。

  密码文件(pfx-password.txt):以.txt为后缀或文件类型。

  


2.在Tomcat安装目录下新建cert目录,将解压的证书和密码文件拷贝到cert目录下。

3.修改配置文件server.xml,并保存。

   去掉以下内容的注释:

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

参照以下内容修改<Connector port="443"标签内容。

<Connector port="443" #port属性根据实际情况修改(https默认端口为443)。如果使用其他端口号,则您需要使用https://yourdomain:port的方式来访问您的网站。 protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile="Tomcat安装目录/cert/domain name.pfx" #证书名称前需加上证书的绝对路径,请使用您证书的文件名替换domain name。 keystoreType="PKCS12" keystorePass="证书密码" #请替换为密码文件pfx-password.txt中的内容。 clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

这里有一点需要注意:

protocol="HTTP/1.1" 如果原配置不是给参数,最好不要改。

其次是 

SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"

如果重启tomcat服务器访问不通,查看log日志。如果报错信息包含有 

TLSv1+TLSv1.1+TLSv1.2      未找到的信息的话  需要如下修改:

SSLProtocol="TLS" 这样一般就OK了


4.可选: 配置web.xml文件,开启HTTP强制跳转HTTPS。

在文件</welcome-file-list>后添加以下内容:

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

5.重启Tomcat。

执行以下命令关闭Tomcat服务器。

./shutdown.sh

执行以下命令开启Tomcat服务器。

./startup.sh

后续操作:

证书安装完成后,可通过登录证书绑定域名的方式验证证书是否安装成功。

https://domain name.com #domain name替换成证书绑定的域名。

验证证书是否安装成功时,如果网站无法通过https正常访问,需确认您安装证书的服务器443端口是否已开启或被其他工具拦截。