Tomcat服务器配置SSL证书

18 篇文章 2 订阅
6 篇文章 0 订阅

专业术语

详见,鄙人拙文《PKI/CA/数字签名等相关名词解释》

HTTPS(SSL)通信原理介绍

详见,鄙人拙文《浅谈SSL认证原理》

keytool密钥管理

本篇采用keytool工具进行tomcat的SSL证书配置。所以有必要先介绍一下keytool工具。
keytool是JDK自带的密钥管理工具,包括密钥的生成,导出,删除和密码修改等功能。证书的公私钥均存储于密钥仓库中。密钥仓库本质是一个带有口令的数据文件。密钥他库分为:

密钥仓库

密钥项(私钥区)

密钥项 - 存放极为敏感的加密密钥信息,通过口中令方式访问。用于存储PKI体系中的私钥。及其关联的证书链。

可信任密钥库

可信任密钥库 - 用于存储PKI体系中证书的公钥,用于身份识别。适用于数字签名验证。

Tomcat服务器配置SSL证书

SSL配置流程

在这里插入图片描述

生成数字证书

#切换到tomcat的bin目录
C:\Users\XS>cd C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin
#生成证书

C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin>keytool -genkey -alias tomcat -keyalg RSA -keypass 123456 -storepass 123456 -keysize 2048 -keystore tomcat.keystore -validity 7300
您的名字与姓氏是什么?
  [Unknown]:  zh
您的组织单位名称是什么?
  [Unknown]:  test
您的组织名称是什么?
  [Unknown]:  tt
您所在的城市或区域名称是什么?
  [Unknown]:  nj
您所在的省/市/自治区名称是什么?
  [Unknown]:  js
该单位的双字母国家/地区代码是什么?
  [Unknown]:  ch
CN=zh, OU=test, O=xs, L=nj, ST=js, C=ch是否正确?
  [否]:  y
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore tomcat.keystore -destkeystore tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

在这里插入图片描述
命令介绍:

参数描述
-genkey创建密钥仓库,以“.keystore”结尾
-alias别名 缺省值 mykey}
-keyalg指定密钥的算法(RSA DSA,默认采用DSA)
-keypass私钥的密码,一般设定与storepass一致
-storepass指定密钥库的密码
-keysize指定密钥长度 缺省值 1024
-keystore指定密钥库的名称
-validity指定证书的有效期 单位天,默认三个月 90

根据需要填写证书注册项:您的名字与姓氏是什么?一般填写服务器所使用的域名(例:www.bac.com),其它的根据实际情况填写,也可以直接回车跳过,最后确认,输“Y”。此时会目录下生成tomcat.keystore 文件,如下图:
在这里插入图片描述

导出服务端证书公钥

将tomcat.keystore密钥库中的证书公钥进行导出,后缀为.cer的证书公钥,执行命令如下:

keytool -export -alias tomcat -storepass 123456 -file tomcat.cer -keystore tomcat.keystore

在这里插入图片描述

注:参数必须为生成tomcat.keystore密钥文件时所指定的别名和密码,否则证书导出失败。执行上述命令之后,生成“tomcat.cer”文件,如下图所示:
在这里插入图片描述

导入公钥证书到可信任密钥库

keytool -import -trustcacerts -alias tomcat -storepass 123456 -file tomcat.cer -keystore cacerts

如果有提示,输入Y回车。
在这里插入图片描述
命令执行成功后,在bin目录下多出cacerts文件,如下图:
在这里插入图片描述

配置Tomcat的SSL端口和证书

打开tomcat/conf/server.xml,添加如下内容:

<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="C:/rogram Files/Apache Software Foundation/Tomcat 9.0/conf/tomcat.keystore" keystorePass="123456"
           clientAuth="false" sslProtocol="TLS"/>

在这里插入图片描述

启动tomcat

启动如果报443端口错误,多半是因为443被其他程序占用了,建议换成444。重启。
或者参考
启动tomcat时提示端口被占用"[HTTP/1.1-443]]失败"
输入https://127.0.0.1回车。
在这里插入图片描述
注:443为默认端口,所以在访问时无需输入端口号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

索菲亚李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值