版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LJX_ahut/article/details/82153895
记录一下为了使Tomcat容器支持https协议所做的配置步骤
1.首先部署Tomcat的环境,从apache官方网站上下载解压版tomcat解压后防止某个目录即可,不再赘述
2.使用java自带的工具生成安全证书
进入jdk安装目录下的bin文件夹,进入dos界面(资源管理器进入该级目录后按住shift键右击鼠标,选择"在此处打开命令窗口")
使用命令
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore"
参数解释
C:\Program Files\Java\jdk1.8.0_121\bin>keytool -genseckey -help
keytool -genseckey [OPTION]...
生成密钥
选项:
-alias <alias> 要处理的条目的别名
-keypass <arg> 密钥口令
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
使用 "keytool -help" 获取所有可用命令
为了方便管理,将f盘根目录生成的tomcat.keystore复制到tomcat的config同级目录中的ssl文件夹中
3.修改server.xml
原有的配置是注释状态,如下所示
<!-- <Connector SSLEnabled="true" clientAuth="false" maxThreads="150" port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/> -->
修改为
<Connector SSLEnabled="true" clientAuth="false" connectionTimeout="20000" keystoreFile="E:/lujx/Refs/apache-tomcat-8.0.53/ssl/tomcat.keystore" keystorePass="123456" maxThreads="150" port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/>
属性 | 描述 |
---|---|
clientAuth |
如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证 |
keystoreFile |
指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME>(Tomcat安装目录)环境变量 的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。 |
keystorePass |
指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。 |
sslProtocol |
指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。 |
ciphers |
指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码 |
ps:用keytool生成证书时,名字与姓氏应该是域名。
此时,使用 https://localhost:8443即可访问tomcat首页。
扩展:
1.将protocol="HTTP/1.1"替换为protocol="org.apache.coyote.http11.Http11Protocol"
2.可将端口改为443,此时访问https://localhost即可。
参考资料: