Tomcat7配置https的坑
程序员文章站
2022-06-14 19:57:56
...
这里使用的是阿里云的证书
这里用中国人都有的淘宝账号就可以登录。登进去之后主页搜索一下SSL证书,选择购买
证书类型选择 免费型DV SSL,然后完成购买
购买成功后进入ssl控制台可以看到自己购买的服务,点选申请
这里填入自己信息,建议选择文件验证,只需要把验证文件下载到本地部署到网站根目录就可以完成验证,使用DNS验证可能会有些问题。另外如果想自己设置密码可以选择手工填写CSR。确认没有问题之后等待几分钟就可以通过审核。
选择下载Tomcat对应的文件,为一个压缩包,里面只有两个文件(包含PFX格式证书文件和TXT格式密码文件),而不像网上有些说的是四个文件,可能也是在改名云盾之后有所更新(2019.5)
接着就是配置了
操作步骤
- 解压Tomcat证书。
说明 每次下载证书都会产生新的密码,该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新匹配的密码。
-
Tomcat安装目录下的conf下新建cert目录,将下载的证书和密码文件拷贝到cert目录下
-
打开Tomcat/conf/server.xml,在server.xml文件中找到以下参数并进行修改。
-
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> #找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数: <Connector port="80" protocol="HTTP/1.1" #将Connector port修改为80。 connectionTimeout="20000" redirectPort="443" /> #将redirectPort修改为SSL默认端口443,让HTTP访问自动跳转为HTTPS访问。 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="cert/keystore.pfx" certificateKeystorePassword="XXXXXXX" certificateKeystoreType="PKCS12" /> #找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数: <Connector port="443" #将Tomcat中默认的HTTPS端口Connector port 8443修改为443。8443端口不可通过域名直接访问、需要在域名后加上端口号;443端口是HTTPS的默认端口,可通过域名直接访问,无需在域名后加端口号。 protocol="org.apache.coyote.http11.Http11NioProtocol" #server.xml文件中Connector port有两种运行模式(NIO和APR),请选择NIO模式(也就是protocol="org.apache.coyote.http11.Http11NioProtocol")这一段进行配置。 maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/cert/证书域名.pfx" #此处certificateKeystoreFile代表证书文件的路径,请用您证书的路径+文件名替换证书域名.pfx,例如:certificateKeystoreFile="conf/cert/abc.com.pfx" certificateKeystorePassword="证书密码" #此处certificateKeystorePassword为SSL证书的密码,请用您证书密码文件pfx-password.txt中的密码替换,例如:certificateKeystorePassword="bMNML1Df" certificateKeystoreType="PKCS12" /> #证书类型为PFX格式时,certificateKeystoreType修改为PKCS12。
重启Tomcat基本就可以了
其实这个问题很简单,之所以踩坑似乎是因为我的tomcat7版本号太低(7.0.82)用各种方法配置后都没有什么任何反应,升级到7.0.92就可以,顺手防了把漏洞
上一篇: IOS学习笔记(五)
下一篇: phpcms二次开发有关问题