用tomcat搭建https

喜你入骨 提交于 2019-11-27 05:37:22

HTTPS,安全的http连接,并且苹果也宣布,在将来他们将不在支持http,所有的链接均走https。这里借助jdk的工具和tomcat服务器,搭建一个HTTPS的服务器


1、进入java jdk的bin目录,运行keytool工具


 keytool有如下参数

wKioL1ZFfDOAivXHAAA79hq4Oak092.png

可以运行以下命令

keytool -genkey -alias tomcat -keyalg RSA -keystore D:tmp\tomcat

【解释:生成的文件名为 tomcat,https利用的非对称加密算法为RSA,把文件生成在D:tmp/目录下】

逐步按照提示填写相关信息

wKioL1ZFfFnj1NdZAAA-EZ0l5Sc310.png

然后在我的D盘中生成了一个文件 tomcat


至此,证书已经生成完毕,接下来配置tomcat,使之支持https,本次测试中用的tomcat版本为tomcat7


2、配置tomcat

路径:apache-tomcat-7.0.54\conf\server.xml文件


修改Connector 8443的相关配置

原始文件为

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


修改为:

  <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" enableLookups="false"
           acceptCount="100" disableUploadTimeout="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="D:/tmp/tomcat"
           keystorePass="123456" />


--------------------------

kystoreFile是指生成的证书路径

keystorePass,证书的密码,在上述生成的时候我设置的是123456


配置完成以后启动tomcat  startup.bat

启动的后,发现有错误,错误信息如下:

Connector attribute SSLCertificateFile must be defined when using SSL with APR

wKiom1ZFfFaDK_mrAACiHKe0WAE416.png


可以看到,这种错误原因是由于Apache的APR所导致,APR是个一个什么东西呢,百度百科一下


APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层应用程序提供一个可以跨越操作系统平台使用的底层支持接口库。


这种错误可以重新修改配置文件,修改server.xml

把以下代码给注释掉

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

或者下载相应的APR库文件,它需要以下组件支撑

  •  APR library

  • JNI wrappers for APR used by Tomcat (libtcnative)

  • OpenSSL libraries 

(这种方式我没有去实践,而是简单粗暴的采用了第一种方式)


再重新启动,正常启动。


3、访问


在浏览器中输入https://127.0.0.1:8443/

可以看到浏览器报警说证书不受信任,点击我新人该程序,并且加入到信任列表中。然后即可看到tomcat的管理目录

至此,tomcat搭建https环境完毕


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!