HTTPS,安全的http连接,并且苹果也宣布,在将来他们将不在支持http,所有的链接均走https。这里借助jdk的工具和tomcat服务器,搭建一个HTTPS的服务器
1、进入java jdk的bin目录,运行keytool工具
keytool有如下参数
可以运行以下命令
keytool -genkey -alias tomcat -keyalg RSA -keystore D:tmp\tomcat
【解释:生成的文件名为 tomcat,https利用的非对称加密算法为RSA,把文件生成在D:tmp/目录下】
逐步按照提示填写相关信息
然后在我的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
可以看到,这种错误原因是由于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环境完毕
来源:oschina
链接:https://my.oschina.net/u/2457218/blog/534761