相较于http,https提供了身份验证与加密通信方法。于是,出于安全性考虑,越来越多的网站开始使用https协议。
一、环境准备
为了成功配置https,你需要具备以下环境:
java jdk
tomcat
二、SSL证书简介
要想使用https,首先,我们需要有SSL证书,证书可以通过两个渠道获得:
1.公开可信认证机构
例如CA,但是申请一般是收费的,一般几百到几千一年.
2.自己生成
虽然安全性不是那么高,但胜在成本低.
目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式.
虽然两种方式博主都已经实现过,但是这里只讲JKS格式.
三、JKS格式证书生成
好了,我们的jdk要派上用场了
1.打开你的终端或者命令行或者其他黑窗口,输入:
keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore ~/Lee/test.keystore
alias: 别名 这里起名testKey
keyalg: 证书算法,RSA
validity:证书有效时间,10年
keystore:证书生成的目标路径和文件名,替换成你自己的路径即可,我定义的是~/Lee/test.keystore
2.回车,然后会让你输入一些信息,其中秘钥库口令和秘要口令最好输入同一个,并且记下这个口令,其他的随便填即可
3.在你刚才的目标路径里拿到生成好的test.keystore.
四、tomcat配置https
1.把keystore证书上传到你的tomcat服务器上(如果你的tomcat在本地,那么不移动也可以),并记下证书所在路径.
2.cd到tomcat的conf目录下,打开server.xml文件,搜索https找到下面这项:
tomcat配置文件
3.先去掉注释,然后将keystoreFile和keystorePass处替换成你自己的证书路径和生成证书时的口令即可.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="你的keystore路径" keystorePass="生成证书时的口令" />
port: https的端口,默认8443
clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile
keystoreFile: keystore证书的路径
keystorePass: 生成keystore时的口令
4.启动tomcat,然后就可以使用https和8443端口访问你的服务了!
更多Tomcat相关教程见以下内容:
CentOS 6.6下安装配置Tomcat环境
RedHat Linux 5.5安装JDK+Tomcat并部署Java项目
Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案
CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤
Ubuntu 16.04下安装Tomcat 8.5.9