http协议转换为https协议生成相关证书
- 一、前言
- 二、操作步骤
- 1.域名使用https需要的站点去申请对应的证书才可以,因此本次就先说下本地http转换https,使用jdk自带的工具生成本地的ssl证书
- 2.开始生成ssl证书,进入cmd中执行如下命令
- 3、证书生产后为客户端生产证书
- 4.将.p12格式的证书导出为cer文件,方便导入证书库中
- 5.将client.cer导入到服务器的证书库中,添加为一个信任的证书
- 6、查看服务器证书库
- 7、双向认证要将证书文件导入到客户端的信任站点中,因此将tomcat.keystore导出为tomcat.cer文件
- 8、双击产生的tomcat.cer进行证书安装
- 9,开始服务端的配置,tomcat的server.xml文件的配置
- 10、在tomcat的web.xml中加入如下内容,放到web-file-list后面即可,主要的作用是http访问自动请求https
一、前言
首先来说下http和https
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
二、操作步骤
1.域名使用https需要的站点去申请对应的证书才可以,因此本次就先说下本地http转换https,使用jdk自带的工具生成本地的ssl证书
2.开始生成ssl证书,进入cmd中执行如下命令
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -storepass "123456" -validity 36500 -keystore "D:/sslTemp/tomcatkeystore"
以上信息可以随便输入即可
3、证书生产后为客户端生产证书
keytool -genkey -alias client -keypass 123456 -keyalg RSA -storetype PKCS12 -keypass 123456 -storepass 123456 -keystore D:/sslTemp/client.p12
4.将.p12格式的证书导出为cer文件,方便导入证书库中
keytool -export -alias client -keystore D:/sslTemp/client.p12 -storetype PKCS12 -keypass 123456 -file D:/sslTemp/client.cer
5.将client.cer导入到服务器的证书库中,添加为一个信任的证书
keytool -import -v -file D:/sslTemp/client.cer -keystore D:/sslTemp/tomcat.keystore -storepass 123456
6、查看服务器证书库
keytool -list -v -keystore D:/sslTemp/tomcat.keystore
7、双向认证要将证书文件导入到客户端的信任站点中,因此将tomcat.keystore导出为tomcat.cer文件
keytool -keystore D:/sslTemp/tomcat.keystore -export -alias mykey -file D:/sslTemp/tomcat.cer
keytool -importkeystore -srckeystore D:/sslTemp/client.p12 -srcstoretype pkcs12 -destkeystore D:/sslTemp/client.jks -deststoretype JKS
8、双击产生的tomcat.cer进行证书安装
(1)点击安装证书
(2)选择“受信任的根证书颁发机构”
(3)完成
综合上述步骤,客户端证书则导入成功
9,开始服务端的配置,tomcat的server.xml文件的配置
(1)将如图所示的8443改为443
(2)配置证书位置
(3)找到如下位置将8443改为443
注意:上述参数中clientAuth为true时则客户端也需要导入证书,false只验证服务端
10、在tomcat的web.xml中加入如下内容,放到web-file-list后面即可,主要的作用是http访问自动请求https
到此http转https在tomcat的配置已经完成,客户端和服务端通信必须要有对应的证书才能通信,此时访问http自然就跳转到https访问了