第一步:
CMD下利用JDK创建证书库
keytool -genkey -alias hanqy -keyalg RSA -keystore D:/keys/hanqykey
输入秘钥库口令:123456
再次输入:123456
您的名字与姓氏是什么? 192.168.15.170
您的组织单位名称是什么? HZ
您的城市或所在区域名称是什么?广州
您所在省...的名称是什么?广东
该单位的双字母国家、地区是什么?CHINA
.............是否正确?[否] y
输入<hanqy>秘钥口令:123456
再次输入:123456
第二步:
导出为证书
keytool -export -file d:/keys/hanqy.crt -alias hanqy -keystore d:/keys/hanqy
输入秘钥库口令:123456
第三步:
配置TomcatHTTPS
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/keys/hanqy" keystorePass="123456"/>
第四步:
配置web.xml 全局HTTPS(http自动跳转为https)
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
第五步:
导入证书(自定义证书导入无效)
第六步:
编写JAVA访问HTTPS方法(web直接通过https访问Tomcat WEB容器,无需编写)
配置成功,HTTPS已激活,数据前台传往web后台的数据已被加密
spring boot中 启用https
上述第一二步生成了证书和秘钥,可以在springboot中进行启动。
1:把秘钥放在可以访问的地址,我把它放到了resource中
2:增加配置
# ssl开启后,此端口为https的端口
server.port=8980
#ssl的配置,需要和生成秘钥相对应
server.ssl.enabled=true
server.ssl.key-alias=hanqy
server.ssl.key-store=classpath:myKey
server.ssl.key-store-type=JKS
server.ssl.key-password=123456
server.ssl.key-store-password=123456
#自定义配置 http端口,需要和配置类相配
http.port=8088
配置文件(为了让http和https可以同时访问)
@Configuration
public class HttpPortConf {
@Value("${http.port}")
private Integer port;
@Bean
public ServletWebServerFactory servletContainer(){
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector(){
Connector connector= new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(port);
return connector;
}
}