当前位置: 首页 > news >正文

springboot2.0 配置ssl证书详解

运维给了两个证书文件,一个是.key 和.crt 

需要在我的项目中配置ssl,

我所使用的是p12的类型,参考的网址:

首先我们需要生成.p12的文件,文件需要一个插件OpenSSL

 OpenSSL官网,

官方下载地址: https://www.openssl.org/source/

OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具。例如 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

参考网址: Windows安装使用Openssl_microcosm1994的博客-CSDN博客_openssl安装

安装完成后,进入openSSL 的bin目录下 cmd,输入

openssl pkcs12 -export -clcerts -in yourDomain.crt -inkey myPrivateKey.key -out server.p12 
  • yourDomain.crt 替换为你的 crt 文件

  • myPrivateKey.key 替换为你的 key 文件

  • 在此过程中需要让你输入密码,记住这个密码,后面会用到

  • 执行此命令,生成了我们需要的 p12 文件,将其复制到 spring boot 项目中的 src/main/resources/ 目录下,和 application.properties 平级

springboot项目配置

1 server
2   ssl:
3     key-store: server.p12
4     key-store-password: jsc111
5     key-store-type: PKCS12
6     enabled: true

然后再启动类中配置如下代码,

 1  @Bean
 2     public ServletWebServerFactory servletContainer() {
 3         TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(){
 4             protected void postProcessContext(Context context) {
 5                 SecurityConstraint securityConstraint = new SecurityConstraint();
 6                 securityConstraint.setUserConstraint("CONFIDENTIAL");
 7                 SecurityCollection collection = new SecurityCollection();
 8                 collection.addPattern("/*");
 9                 securityConstraint.addCollection(collection);
10                 context.addConstraint(securityConstraint);
11             }
12         };
13         tomcat.addAdditionalTomcatConnectors(httpConnector());
14         return tomcat;
15     }
16 
17     @Bean
18     public Connector httpConnector() {
19         Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
20         connector.setScheme("http");
21         connector.setPort(80);  //Connector监听的http的端口号
22         connector.setSecure(false);
23         connector.setRedirectPort(8808); //监听到http的端口号后转向到的https的端口号
24         return connector;
25     }

然后访问你的项目地址成功访问即可完成

我在启动的时候遇到了一个报错

keytool error: java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48)

此报错代表你的jdk版本过低,需要升级到 8u301 或者 11.0.1版本

我所记录的仅为我找的的方法,只是在本地使用,服务器需要再进行配置,仅供参考

 

相关文章:

  • 客群画像|解决分群与特征分类问题,试一下这个处理方法
  • 【cmake实战六】如何使用编译的库(动态库dll)——windows系统
  • 【vue3源码】九、ref源码解析
  • Input系统学习-----injectInputEvent注入事件调用流程
  • Java项目:SSM物业缴费管理系统
  • 函数指针(函数作为参数传递给其他函数)
  • 2023考研推荐新闻传播专业入门可以看的好书
  • 解决Long类型web前端精度丢失问题
  • Docker服务编排
  • 为什么自动化营销对于独立站运营来说很重要?
  • 服务器模型选择
  • 使用Android studio开发一个数独游戏APP 系列第二讲
  • MySQL中的时间类型
  • linux的基础指令
  • Docker容器中安装Mysql和Redis等全过程(以在阿里云服务器中的Docker安装Mysql和Redis为例)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • js面向对象
  • laravel 用artisan创建自己的模板
  • MySQL主从复制读写分离及奇怪的问题
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 爱情 北京女病人
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 区块链将重新定义世界
  • 深入浅出Node.js
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​比特币大跌的 2 个原因
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #define与typedef区别
  • #考研#计算机文化知识1(局域网及网络互联)
  • (14)Hive调优——合并小文件
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (顺序)容器的好伴侣 --- 容器适配器
  • (推荐)叮当——中文语音对话机器人
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)Neo4j下载安装以及初次使用
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)视频码率,帧率和分辨率的联系与区别
  • .apk文件,IIS不支持下载解决
  • .NET Core 2.1路线图
  • .NET Core 成都线下面基会拉开序幕
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net操作Excel出错解决
  • .Net多线程总结
  • .NET分布式缓存Memcached从入门到实战
  • .NET轻量级ORM组件Dapper葵花宝典