springboot#配置https
2024-10-08 13:39:59
1.准备证书
2.1 springboot 1.x配置
2.2 springboot 2.x配置
1.准备证书:
keytool -genkeypair -alias tomcat -keyalg RSA -keystore C:\tomcat.key #注意要用.key结尾证书文件
更多keytool命令
C:\Users\haonan>keytool
密钥和证书管理工具 命令: -certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypair 生成密钥对
-genseckey 生成密钥
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importpass 导入口令
-importkeystore 从其他密钥库导入一个或所有条目
-keypasswd 更改条目的密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印 CRL 文件的内容
-storepasswd 更改密钥库的存储口令 使用 "keytool -command_name -help" 获取 command_name 的用法 C:\Users\haonan>keytool -genkeypair -help
keytool -genkeypair [OPTION]... 生成密钥对 选项: -alias <alias> 要处理的条目的别名
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-sigalg <sigalg> 签名算法名称
-destalias <destalias> 目标别名
-dname <dname> 唯一判别名
-startdate <startdate> 证书有效期开始日期/时间
-ext <value> X. 扩展
-validity <valDays> 有效天数
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令 使用 "keytool -help" 获取所有可用命令
2.springboot 配置:
->application.properties
server.port=
server.ssl.key-store=classpath:tomcat.key
server.ssl.key-store-type=JKS
server.ssl.key-store-password=
->把生产的证书复制到springboot项目的resource目录中去
2.1 springboot 1.x配置:
// 对http协议进行https跳转,这个connector会设置到web容器中
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
} // 自定义web容器的container
// springboot 1.x & 2.x 的区别在于WebServletFactory的类型
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
2.2 springboot 2.x配置
// 对http协议进行https跳转,这个connector会设置到web容器中
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
} // 自定义web容器的container
// springboot 1.x & 2.x 的区别在于WebServletFactory的类型
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
-> https ?
-> tomcat架构
最新文章
- Python读写文件
- postgres 批量更新内容
- PMP和PRINCE2
- MYSQL线程池总结(一)
- LCA算法倍增算法(洛谷3379模板题)
- JavaWeb之Servlet: ServletConfig 与 ServletContext
- NP完全问题
- 连续改变Chrome浏览器窗口大小,可以导致内存泄漏
- 贪心 CF 332 C 好题 赞
- Java架构工程师知识图,你都知道么?
- Linux小知识收集(不断更新)
- Python的基本数据类型
- (网页)jQuery判断checkbox是否选中的方法
- 【BZOJ5305】[HAOI2018]苹果树(组合计数)
- 从小白到区块链工程师:第一阶段:Go语言的控制台输入和输出(3)
- 【react】兄弟组件的通信方式,传统非redux
- python 爬虫利器 Beautiful Soup
- PHP ueditor编辑器使用(TP5)
- jquery add() 和js add()
- 使用VS2012调试Dump文件
热门文章
- SpringBoot与Shiro整合
- 《Web安全攻防 渗透测试实战指南》 学习笔记(一)
- springboot @Select @Insert @Update @Delete
- 一个包含arctan与arctanh的积分
- java 抛出异常与finally的混用对于语句块的执行顺序的影响
- [阿里移动推荐算法]比赛_快速入门_4_19_update_仅供参考,思维不要受局限
- KEAZ128 时钟配置
- vue学习笔记:数据渲染操作
- Python 的直接赋值、Deepcopy、Copy的区别
- MySQL更改默认的root账户密码