Tomcat 配置 HTTPS 协议
HTTPS 协议验证过程
HTTPS验证过程是分为单向验证和双向验证
单向认证
- 客户端保存着服务端的证书并信任该证书即可(参照百度,咱们是没有证书的,百度的证书是由权威CA机构颁布的)
- https一般是单向认证,这样可以让绝大部分人都可以访问你的站点。(依旧参照百度,这里咱们只需要验证百度的服务器证书即可,这里是浏览器去验证的)
双向验证
-
先决条件是有两个或两个以上的证书,一个是服务端证书,另一个或多个是客户端证书。
-
服务端保存着客户端的证书并信任该证书,客户端保存着服务端的证书并信任该证书。这样,在证书验证成功的情况下即可完成请求响应。(只有服务器验证客户端证书并通过,客户端验证服务器证书并通过,才可以进行通信,否则不可以!)
-
双向认证一般企业应用对接。(所以企业与企业间对接,大部分都是自签证书)
总结:
单向验证只需要客户端验证服务器证书即可,双向则需要双方都验证,才可以进行通信!
为服务器生成证书
以下介绍三种方法:
1. 阿里云、腾讯云等SSL证书购买
2. XCA工具生成
- 具体要制作三个证书:
- 根证书
rootCA.cer
, - 服务器证书
server.p12
(用根证书签名) - 客户端证书
client.p12
(用根证书签名)
- 根证书
下载xca
工具
- 地址:http://xca.hohnstaedt.de/
制作根证书rootCA.cer
-
打开
xca
,点击File
, 选择New DataBase
,选择xdb
文件保存路径,再输入密码:
-
切换到
Certificates
选项卡,点击New Certificate
,选择创建自签名证书,签名算法选择SHA 256
,证书模版选择默认CA
,再点击Apply all
(应用模板所有信息)
-
填写证书主体,点击生成新密钥,选择生成的私钥,点击
OK
,默认有效期 10 年
-
将根证书导出成只包含公钥的证书格式(
*.cer
),根证书就是放在网站上供用户下载安装,或主动安装到客户机器中的
制作服务器证书server.p12
-
选择已经制作好的根证书,然后点击新建(
New Certificate
),签名时选择使用此CA证书进行签名,证书模板选择服务器证书(TLS_server
)再点击Apply all
(应用模板所有信息)