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版本

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值