怎么实现Tomcat单向HTTPS配置-完整版

0.前言

  如果需要测试HTTPS请求,此时服务端的Tomcat则需要配置SSL,本文使用Java的keytool工具生成自签的SSL证书,然后配置到Tomcat的配置中。

1 .创建一个密钥库来存储服务端的私钥和自签名证书

使用的keytool的命令如下:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.store -validity 36500

命令操作的截图如下:
在这里插入图片描述
  执行命令后,会提示设置密钥库的密码,填写相关信息(测试的话随便填写),最后还需要为RSA算法的密钥设置密码,一般跟密钥库一样就好。至此,我们生成了一个密钥库名字为tomcat.store,在密钥库中有我们的密钥和自签名证书的数据。

2.配置Tomcat的SSL HTTP/1.1 Connector

  Tomcat的配置主要的目的是开启HTTPS的监听,以及配置密钥库的位置和密码,使得Tomcat能够获得密钥库中的密钥和证书的数据。
   配置Tomcat的server.xml(在Tomcat的安装路径下的config目录下),开启HTTPS的Connector,首先在文件中找到如下图的Connector
img
  把注释符号去掉,并且添加添加参数配置密钥库的路径和密码,如下图:
img
  主要就是配置keystoreFile="D:\tmp\tomcat\myssl.store"指定密钥库文件的位置,keystorePass="123456"指定密钥库的密码。

3.测试

   完成上述信息后其实Tomcat的单向配置已经完成了,可以通过https://localhost:8433访问测试一下,结果如下图:
img](http://blog.photo.sina.com.cn/showpic.html#url=http://album.sina.com.cn/pic/0033FqfCzy7huwAiFK67e)

  访问https://localhost:8433成功

  单击https左边的锁头我们可以查看到证书的相关信息,如下:
在这里插入图片描述
  在这里,也许我们还会有些疑问,就是客户端是怎么获取的服务端的证书的,其实这是Tomcat服务器的指定Connector在接收到来自HTTPS的请求时,会先将自签名证书发送给客户端,客户端会保存该证书,然后使用该证书来进行HTTPS通信。

   除了这样的方式下发证书外,也可以直接从服务端的密钥库中,将证书导出来,交给客户端,客户端将证书文件导入到自己的根证书信任列表(当然一般都不需要采用这些步骤)。这种在客户端导入服务端证书的步骤如下:

  • 1).导出服务端的证书为cer文件

  这一步是从服务端的密钥库中导出证书,将该证书颁发或者交给客户端,首执行的是导出的操作keytool命令如下:

keytool -keystore tomcat.store -export -alias tomcat -file tomcat.cer

  导出服务端证书为CER文件,需要输入密钥库密码,操作截图如下
img

  • 2).将导出的服务端证书导入到浏览器中

   双击生成的CER文件,点击安装证书,然后选择本地计算机,再选择将所有证书都放入下列存储,最后选择受信任的根证书颁发机构,确定就完成了导入操作。

4 .后记

  在配置时发现了一些小问题,使用的浏览器也是有影响的,刚开始我配置了一遍,在火狐和IE浏览器是可以以HTTPS的方式访问,但是在谷歌浏览器怎么也没法访问,原因是我使用是DSA的算法。Java的keytool工具生成密钥库和证书时,不配置-keyalg选项,默认就是DSA算法;后来,以RSA算法重新生成了证书,在配置好,就没有问题了,所以本例中也是配置的RSA算法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值