HTTPS简介
创始人
2024-05-30 03:57:45
0

HTTPS是HTTP开启TLS传输协议,客户端要拿到服务端的公钥,用公钥加密数据后再进行传输,防止数据泄露后背篡改。它要解决两个问题:

  1. 怎么保证公钥可信

  1. 怎么加密数据

公钥可信问题

客户端从服务端获取公钥的时候,存在请求被拦截,攻击者把公钥替换成自己的公钥的风险。这样客户端再用公钥加密,攻击者就可以用自己的私钥解密,篡改内容后再用服务端公钥加密传给服务器。这时,客户端拿到公钥后就要验证公钥的可信度。

保证公钥可信

HTTPS通过数据认证中心(CA)签发的证书证明自己的公钥可信。证书里主要信息包括:认证机构公钥、机构的数字签名、有效期、持证人标识符、签名算法、序列号、版本等。客户端拿着认证机构的公钥和其他信息来验证数据前面的有效性,验证通过就代表客户端拿到的公钥是属于持证人的。

怎么保证认证机构的公钥是可信的?使用同样的验证方式,拿到认证机构公钥的数字证书去验证机构的公钥。最终会验证到根证书,根证书是预置在操作系统里,默认是可信的。

加密数据

HTTPS通过混合加密技术,既对称加密和非对称加密。

  • 非对称加密用作“秘钥协商”,用来传输对称加密的秘钥

  • 对称加密来加密明文

对称加密性能高,无法保证密钥传输安全;非对称加密传输安全,但无法加密性能差。

SpringBoot配置HTTPS

获取证书

用java自带的keytool自生成证书

keytool -genkey -alias tomcat -dname "CN=localhost,OU=kfit,O=kfit,L=HaiDian,ST=BeiJing,C=CN" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365

将证书放到resources/certs/文件夹下,在application.yml添加证书配置信息,就可以以HTTPS访问服务

server:port: 443ssl:key-alias: "tomcat"key-store: "classpath:certs/keystore.p12"key-store-password: "123456"key-store-type: "PKCS12"

SpringBoot将HTTP重定向到HTTPS

方式一,基于tomcat的重定向

在tomcat上添加了Connector监听http的端口,然后在”/*” 路径下添加SecurityConstraint=CONFIDENTIAL,要求所有请求都走SSL协议。

@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory() {TomcatServletWebServerFactory tomcatServletWebServerFactory = new TomcatServletWebServerFactory() {@Overrideprotected void postProcessContext(Context context) {SecurityConstraint securityConstraint = new SecurityConstraint();// CONFIDENTIAL要求使用SSL协议securityConstraint.setUserConstraint("CONFIDENTIAL");SecurityCollection securityCollection = new SecurityCollection();securityCollection.addPattern("/*");securityConstraint.addCollection(securityCollection);context.addConstraint(securityConstraint);}};tomcatServletWebServerFactory.addAdditionalTomcatConnectors(connector());return tomcatServletWebServerFactory;
}private Connector connector() {Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);connector.setPort(8080);// 默认值就是443,可以不填connector.setRedirectPort(443);return connector;
}

方式二,基于SpringSecurity的请求路由

不同tomcat的SecurityConstraint实现重定向,但是Connector还是要添加。

在httpSecurity中通过portMapper()配置端口映射,再配置requiresChannel()要求所有请求都走安全的协议。

@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory() {TomcatServletWebServerFactory tomcatServletWebServerFactory = new TomcatServletWebServerFactory();tomcatServletWebServerFactory.addAdditionalTomcatConnectors(connector());return tomcatServletWebServerFactory;
}private Connector connector() {Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);connector.setPort(8080);// 默认值就是443,可以不填connector.setRedirectPort(443);return connector;
}@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {httpSecurity.portMapper(it -> it.http(8080).mapsTo(443)).requiresChannel(channel -> channel.anyRequest().requiresSecure()).formLogin();return httpSecurity.build();
}

相关内容

热门资讯

国泰中证动漫游戏ETF净值上涨... 国泰中证动漫游戏交易型开放式指数证券投资基金(简称:国泰中证动漫游戏ETF,代码516010)公布6...
长城久祥混合C净值上涨3.46... 长城久祥灵活配置混合型证券投资基金(简称:长城久祥混合C,代码017462)公布6月16日最新净值,...
江苏江顺精密科技集团股份有限公... 证券代码:001400 证券简称:江顺科技 公告编号:2025-008江苏江顺精密科技集团股份有限...
长城久祥混合A净值上涨3.46... 长城久祥灵活配置混合型证券投资基金(简称:长城久祥混合A,代码001613)公布6月16日最新净值,...
无张力修补术为百岁老人除巨疝 转自:天津日报  近日,天津市人民医院(南开大学第一附属医院)(以下简称市人民医院)疝和腹壁外科团队...
“草根足球”点燃全民热情 转自:团结报  编者按  “苏超”和“村超”两个民间足球赛事,一个是新晋“爆款”,一个是成名已久的“...
三晋大地上有哪些红色革命故事? 三晋大地上有哪些红色革命故事?从北面,南洋华侨李林烈士牺牲在朔州平鲁;到忻州大同一代带平型关大捷;1...
易方达先锋成长混合C净值上涨3... 易方达先锋成长混合型证券投资基金(简称:易方达先锋成长混合C,代码011892)公布6月16日最新净...
求:教育人的小故事 求:教育人的小故事有一只木车轮的一角不留神丢了,它很苦恼,为此,它决定满世界去寻找一片合适的木料让自...
真的还是假的 真的还是假的 真的无疑,你怀疑的是他的4g显示吧,那是因为他是移动的卡,联通的就不可以显示4g
藏族歌曲有那些啊 藏族歌曲有那些啊你看这些可以吗《格桑拉》 《康定情歌》《阿古班玛》《次仁拉索》《敬酒歌》《邦金梅朵》...
求和“叶子或树叶或绿叶”有关的... 求和“叶子或树叶或绿叶”有关的成语、诗句或短句。越多越好呵呵 如一叶孤舟等等!~~落红不是无情物,化...
当老师嗓子经常哑怎么办 当老师嗓子经常哑怎么办当老师的说话比较多,用嗓过度,就会引起嗓子哑。可以药物治疗,比如金嗓子喉片、西...
2011最流行的穿越小说 2011最流行的穿越小说斗罗大陆、酒神等(唐家三少)长生记、生肖守护神、天珠变、斗破苍穹、琴帝……更...
川又伽椰子用日文怎么说? 川又伽椰子用日文怎么说?谢谢了川又 伽椰子かわまた かやこkawamata kayako
前海联合泳隆混合C净值上涨3.... 新疆前海联合泳隆灵活配置混合型证券投资基金(简称:前海联合泳隆混合C,代码007040)公布6月16...
影视ETF净值上涨3.69% 银华中证影视主题交易型开放式指数证券投资基金(简称:影视ETF,代码159855)公布6月16日最新...
内塔尼亚胡:以方行动不会停止 ... 当地时间16日晚,在一场预先录制好的线上新闻发布会中,以色列总理内塔尼亚胡介绍了迄今为止以方在打击伊...
如何在ie的空白页上增加快捷页... 如何在ie的空白页上增加快捷页面链接呵呵,苹果的浏览器貌似有这个功能,还挺好看的,而且速度快的很,其...
北京大栅栏:暖心服务藏在细节里 转自:光明日报  六百年历史的北京市西城区大栅栏地区,游客如织。在这繁华背后,社会治理的触角正悄然深...