tomcat 配置 ssl 证书, 实现 https 协议访问

tomcat 配置 ssl 证书, 实现 https 协议访问

目前我所用过配置 ssl 证书有两种方式,第一种通过 tomcat 进行配置,第二种通过 nginx 进行配置,证书用的是阿里云的免费证书

首先在阿里云 ssl 证书页面根据您的服务器类型选择证书下载


我这里选择的是 tomcat 类型,下载后的 zip 文件解压查看如下:

在 tomcat 目录,新建 cert 文件夹, 将证书文件和证书文件密码复制到 cert 文件夹下


找到找到安装 Tomcat 目录下 conf 目录中 server.xml 文件并打开, 找到 <Connection port="8443" 标签,tomcat 版本不一致, 注释内容可能不一致, 将这一段取消注释

修改为:

<Connector port="443"
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert 目录下证书文件的文件名 + 文件后缀"
    keystorePass=""cert目录下证书文件密码,打开文件复制文件中密码到此处即可"
    clientAuth="false"
    keystoreType="PKCS12" 
    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"/>


> ps: 这里将 Connector port 8443 端口改为 443 , 因为 8443 端口在访问时需要加端口号, 相当于 http 的 8080, 不可通过域名或 ip 直接访问, 而 443 相当于 80 端口 访问时默认隐藏掉了。改完后记得将重定向端口也修改一下。

如需要全局转换成 https 访问, 找到找到安装 Tomcat 目录下 conf 目录中 web.xml 文件并打开, 在结尾标记 </webapp 前添加如下配置:

 <security-constraint>
 <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 就可以实现 https 访问啦 \~