电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

SpringBoot 改造成https訪問的實現

瀏覽:14日期:2023-04-19 11:19:31

SpringBoot https改造

1.生成密鑰證書

生成命令:keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

(1)關鍵字解釋:

alias 密鑰別名

storetype 指定密鑰倉庫類型

keyalg 生證書的算法名稱,RSA是一種非對稱加密算法

keysize 證書大小

keystore 生成的證書文件的存儲路徑

validity 證書的有效期

(2)生成證書注意:

在輸入證書生成命令之后,會提示輸入:

密鑰庫口令:證書密碼,在后面的項目中配置證書時用到

姓氏:一般沒什么用,在瀏覽器中查看證書時會顯示,用于正式場合的證書還是需要填寫標準。

組織單位:證書使用單位信息,一般沒什么用,在瀏覽器中查看證書時會顯示,用于正式場合的證書還是需要填寫標準。

組織單位名稱:證書使用單位名稱,一般沒什么用,在瀏覽器中查看證書時會顯示,用于正式場合的證書還是需要填寫標準。

所在的城市或區域名稱:瀏覽器中查看證書信息時會顯示。

所在的省/市/自治區名稱:瀏覽器中查看證書信息時會顯示。

單位的雙字母國家/地區代碼:國家或地區編碼,瀏覽器中查看證書信息時會顯示。

2.將生成的密鑰證書拷貝到項目中的resource中(也可以不拷貝到項目中,后面配置路徑時配置密鑰證書的絕對路徑即可)。

SpringBoot 改造成https訪問的實現

3.修改項目配置文件application.properties,增加如下配置項:

SpringBoot 改造成https訪問的實現

server.ssl.key-store=classpath:keystore.p12 (密鑰文件路徑,也可以配置絕對路徑)

server.ssl.key-store-password=aqjcpt (密鑰生成時輸入的密鑰庫口令)

server.ssl.keyStoreType=PKCS12 (密鑰類型,與密鑰生成命令一致)

server.ssl.keyAlias=tomcat (密鑰別名,與密鑰生成命令一致)

4.啟動項目,直接訪問項目即可:

SpringBoot 改造成https訪問的實現

補充知識:SpringBoot配置HTTPS,并實現HTTP訪問自動轉HTTPS訪問

這里說一下為什么寫這篇文章,因為我也是一個SpringBoot初學者,在配置https的時候遇到了一些坑,根據網上的配置方式,發現一些類已經過時,這里僅以記錄一下我的配置過程,以供參考.

1.使用jdk自帶的 keytools 創建證書

打開cmd窗口,輸入如下命令

keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore

按照提示進行操作

輸入密鑰庫口令:123456再次輸入新口令:123456您的名字與姓氏是什么?[Unknown]: kaibowang您的組織單位名稱是什么?[Unknown]: yuxuelian您的組織名稱是什么?[Unknown]: yuxuelian您所在的城市或區域名稱是什么?[Unknown]: chengdu您所在的省/市/自治區名稱是什么?[Unknown]: chengdushi該單位的雙字母國家/地區代碼是什么?[Unknown]: chinaCN=kaibowang, OU=yuxuelian, O=yuxuelian, L=chengdu, ST=chengdushi, C=china是否正確?[否]: y輸入 <tomcat> 的密鑰口令(如果和密鑰庫口令相同, 按回車):再次輸入新口令:Warning:JKS 密鑰庫使用專用格式。建議使用 'keytool -importkeystore -srckeystore C:UsersAdministrator.keystore -destkeystore C:UsersAdministrator.keystore -deststoretype pkcs12' 遷移到行業標準格式 PKCS12。

創建完成后,可在用戶根目錄查看生成的keystore文件

2.新建springboot項目,將上一步生成的keystone文件復制到項目的根目錄,在application.properties添加如下配置

server.port=443server.ssl.key-store=server.keystoreserver.ssl.key-alias=tomcatserver.ssl.enabled=trueserver.ssl.key-store-password=123456server.ssl.key-store-type=JKS

這里將服務器端口號設置成443端口,即https的默認訪問端口,那么在進行https訪問的時候可以不帶端口號直接訪問,如果端口被占用使用

netstat -ano

查看哪個進程號占用了端口,使用

tasklist|findstr (查看到的進程號)# simpleC:UsersAdministrator>tasklist|findstr 3664vmware-hostd.exe 3664 Services 0 5,040 K

打開任務管理器,殺死占用進程,或打開對應的應用程序的設置,關閉監聽

至此 https配置完畢 訪問 https://localhost 查看是否配置成功

3.http訪問自動轉https訪問

向spring容器中注入兩個Bean,代碼如下

@Bean public Connector connector(){ Connector connector=new Connector('org.apache.coyote.http11.Http11NioProtocol'); connector.setScheme('http'); connector.setPort(80); connector.setSecure(false); connector.setRedirectPort(443); return connector; } @Bean public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){ 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(connector); return tomcat; }

首先 這里需要使用 TomcatServletWebServerFactory 這個類,網上清一色的都是使用 EmbeddedServletContainerFactory 這個類.

在新版本的SpringBoot中,我發現已近找不到這個類了,幾經周轉,翻閱源碼,才找到這個類,這也是我為什么寫這篇文章的初衷.

其次在這里設置http的監聽端口為80端口,http默認端口,這樣在訪問的時候也可以不用帶上端口號.

完成以上配置后,我們訪問 http://localhost 即可自動跳轉為 https://localhost

以上這篇SpringBoot 改造成https訪問的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 上海道勤塑化有限公司 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 最新电影-好看的电视剧大全-朝夕电影网 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 周口风机|周风风机|河南省周口通用风机厂 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 识禅_对禅的了解,从这里开始 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 上海佳武自动化科技有限公司| elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 申江储气罐厂家,储气罐批发价格,储气罐规格-上海申江压力容器有限公司(厂) | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 车载加油机品牌_ 柴油加油机厂家 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 达利园物流科技集团- | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 釜溪印象网络 - Powered by Discuz! |