1. 使用jdk自带Keytool+tomcat项目http转单向https
  2. 使用Keytool生成双向https证书提供请求工具类

上面两个文章一个是生成单向https一个是生成双向https,里面包含了如何开启http和https双端口,如何配置证书,如何使用java代码请求https地址。业务中遇到的基本都包含了但不是所有人的业务需求都一样。

导入服务端证书

之前安装双向https证书时遇到了写问题这里做个详细的记录。

1、谷歌浏览器打开设置

上传cer证书到nginx_客户端

2、点击左侧设置 --> 选择高级 --> 点击隐私设置和安全性

上传cer证书到nginx_客户端_02


3、进入页面选择并点击证书管理

上传cer证书到nginx_客户端_03


4、选择 “受信任的根证书颁发机构” 区域,然后点击导入,下一步,浏览找到服务端证书位置选择导入

上传cer证书到nginx_上传cer证书到nginx_04


5、服务端证书的名字是 server.cer这个文件,打开后继续下一步

上传cer证书到nginx_上传cer证书到nginx_05


6、跟着向导继续,下一步

上传cer证书到nginx_服务端_06


7、点击 完成后,有个安全警告,点击 是 ,然后服务端证书就导入成功了。

上传cer证书到nginx_服务端_07


8、成功后截图

上传cer证书到nginx_服务端_08

导入客户端证书

1、前面的1–3步骤都是一样的,从上面的第4步开始不一样,客户端选择 “个人” 区域

上传cer证书到nginx_java_09


2、浏览文件时这里要选择*.p12后缀结尾的证书文件,然后打开,下一步

上传cer证书到nginx_https_10


3、客户端导入时需要输入密码,这个是生产证书的时候定义的,这里是:123456

上传cer证书到nginx_java_11


4、继续下一步,然后完成,导入客户端证书成功。

上传cer证书到nginx_客户端_12


5、成功后截图

上传cer证书到nginx_java_13

测试访问

一定要切记两个证书都要导入,少一个就不可以访问。访问https请求项目时会弹框,让你选择证书,点击确定。

上传cer证书到nginx_服务端_14


成功跳转进入项目。

上传cer证书到nginx_客户端_15

改为单向认证

简单提一下单向的https认证,上篇文章生成证书的命令可以不变,但是Tomcat的配置文件需要改一下,将 server.xml 里的配置改成 clientAuth="false"

上传cer证书到nginx_java_16


第一种情况:浏览器直接访问,不安装服务端证书,也不安装客户端证书。访问时如下图,会有一个不安全的提示。点击 高级

上传cer证书到nginx_java_17


然后点击 继续前往

上传cer证书到nginx_客户端_18


进入后是如下界面,会提示不安全的标识

上传cer证书到nginx_java_19


第二种情况:浏览器访问之前,只安装服务端证书或者两个证书都安装。访问时就没让你确认证书的步骤,直接跳转到项目。

上传cer证书到nginx_https_20