万维信

证书使用

如果这里没有你想要的,可以联系在线客服

您现在所在的位置首页 > 技术文档 > 证书使用

Tomcat安装教程

发布时间:2022-10-25

JKS文件准备

jks文件转换参考:https://www.yuque.com/sheca/kfxgzb/tyb1xg

转换完成之后将jks文件上传至tomcat服务器中。


证书配置

在Tomcat的server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把<Connector>元素的注释去掉或重新添加<Connector>元素即可:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"

              maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

              clientAuth="false" sslProtocol="TLS" keystoreFile="C:/tomcat/server.jks"  keystorePass="123456"/>

配置修改完成之后重启Tomcat,通过浏览器https方式访问验证是否正确。

基于SSL的HTTPS使用的默认端口是443。但Tomcat在这里将HTTPS端口设置为8443。

<Connector>配置里的一些属性参数如下:

 

SSLEnabled开启SSL功能

 

clientAuth验证客户端(值为false单向认证,双向认证值为true)

keystoreFile指定jks文件的存放位置及文件名

keystorePass指定keystore的密码(即jks文件密码)


HTTP自动跳转HTTPS

在tomcat\conf\web.xml中的</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>


关闭过时的加密套件算法

通过配置sslEnabledProtocols和ciphers参数,为Tomcat指定安全的传输层协议和加密算法套件,同时可以避免Chrome和Firefox访问加密网站时提示“服务器的瞬时Diffie-Hellman 公共密钥过弱”错误。

 

基于Java 1.6,请添加:

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"

               ……

sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA" />

  

基于Java 7,请添加:

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"

               ……

sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256" />

 

基于Java 8,请添加:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"

               ……

sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256" />

如果您还在使用Java 1.6或7.0版本,建议升级到最新的Java 8,以获得最佳安全保护。

 

Tomcat 6官方文档: https://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

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

Tomcat 8官方文档: https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html

Tomcat 9官方文档: https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html

 
上一篇:

下一篇:

客户案例