(转)Tomcat8、9配置https SSL证书 阿里云的免费dv证书

好文转载,原文:https://blog.csdn.net/qq_35624642/article/details/83016813

温馨提醒,在配置完后,可能会发生(特别是服务器为Linux系统的时候),使用https://xxx.xxx.xxx(自己的域名)访问不到内容的情况,此时更多的可能不是您配置错了,而是服务器的防火墙开443端口,因此无法访问。请开放443端口即可。

由于Linux系统较多,小编仅提供Centos7.5的防火墙放开443端口操作(逐条命令运行即可,分别为放开443的tcp传输、放开443的udp传输、重启防火墙):


①firewall-cmd --permanent --add-port=443/tcp
②firewall-cmd --permanent --add-port=443/udp
③systemctl restart firewalld

此文环境是Windows Sever2008 R2, Tomcat8.5, Tomcat9都可以。https是用的阿里云的免费dv证书,tomcat绑定的是pfx证书(Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一)。

在申请到阿里云的免费DV证书后,下载 "证书 for Tomcat",阿里云证书安装配置说明https://yundun.console.aliyun.com/?spm=5176.100251.111252.7.1d424f15wWFKFj&p=cas#/cas/download/1540453041410?regionId=
文件说明:
1. 证书文件214054375370509.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214054375370509.key、PFX格式证书文件214054375370509.pfx、PFX格式证书密码文件pfx-password.txt。

PFX证书安装

1、在Tomcat更目下建个cert文件夹,把下载的证书文件放里面。

2、找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443" 标签,默认是注释的,去掉注释,修改增加内容【绿色部分为修改部分】。

3、把默认的8443端口改成443端口

  <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true"  
scheme="https"
    secure="true"

               >
        <SSLHostConfig>
             <Certificate
certificateKeystoreFile="C:/Program Files/Apache Software Foundation/Tomcat 8.5/cert/1541231341210.pfx"
                         certificateKeystoreType="PKCS12" certificateKeystorePassword="1541231341210"
/>
        </SSLHostConfig>
    </Connector>

为了让http访问自动跳转为https访问,这里顺便把这两个标签端口也改成443,

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

 <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

4、修改Tomcat8、9配置的web.xml

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

 

展开阅读全文

没有更多推荐了,返回首页