`
ymq267
  • 浏览: 131085 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

Spring Boot 配置ssl证书实现https详细

阅读更多
一.注意事项

域名和服务器IP是一对一绑定的,所以对于一般域名只能对应一个证书,但如果你想把已经购买的并且已经安装在服务器的证书,在其它服务器上再次使用安装证书,前提是购买的域名证书是以通配符(*)开头的域名(例如:*.yyy.12345.com),则可以再多个服务器上安装证书,其它可以安装的服务器域名(可以是test.yyy.12345.com,demo.yyy.12345.com等)。

二.安装证书
1.首先需要安装OpenSSL的开源软件包,OpenSSL可以下cmd命令上下,进行证书相关的操作!貌似很强大!


2.在服务上用openssl生成公钥和私钥
openssl req -new -key myPrivateKey.key -out server.csr
myPrivateKey.key自己保存,server.csr提交给代理商(证书颁发机构)进行签名,证书颁发机构签名完成后会给出 yourDomain.crt文件(需要注意的是证书颁发机构会返回不止一个crt文件,刚开始研究这SSL的时候总以为都是有用的,但后来发现,其实里面的内容都是一样的!具体我也没完全搞明白)

3.或是你已经有购买的证书,已经有 crt证书和.key文件 或其它格式证书(已经有要能得到crt文件或其它格式的证书文件即可,理论上可以去证书颁发机构官网再去重新下载一份)。

4.之前我不太理解为什么会有这么多格式(crt,cer,pem,p12等),其实貌似他们之间是可以互相转换的.你的项目需要用到哪些格式的证书文件,你就进行转换就可以了(具体怎么转,我也是临时去网上查)!
由于我们是在Java环境中,常用的证书形式有p12格式的,jks格式的,所以需要将crt证书进行格式转换,以转换为p12格式为例:

openssl pkcs12 -export -clcerts -in yourDomain.crt -inkey myPrivateKey.key -out server.p12

输入完命令后回车会出现提示输入一个密码,密码非常重要,一定要记住,后面会用到!

这样就生成了spring boot上可以用的私钥格式文件 server.p12
在这个转换的过程中要求设置一个密码,请记住这个密码

然后是给spring boot配置 server.p12证书

首先进入cmd用命令查询一下别名
keytool -list -keystore server.p12

运行该命令会提示你输入密码,就是上面转换格式时提示设置的密码,输入密码后会显示:

秘钥库类型: JKS
秘钥库提供方:SUN

您的密钥库包含 1 个条目


1, 2017-1-7, PrivateKeyEntry
证书指纹 (SHA1) : 《这里是密文》


注意其中这个1这是我们运行这个命令的目的,这个1会在spring配置文件中也会用到


把证书server.p12文件复制到spring boot项目中的 src/main/resources/ 目录下,和application.properties平级,主要得放到classpath目录下,方便查找.

在application.properties中添加如下内容(如果是多数据源,就在相应的数据源下添加)
server.port=8443(要使用的端口号,只要不要和服务器上的其它端口号重复就可以)
server.ssl.key-store:classpath:server.p12(证书存放路径,就是src/main/resources/ 目录下,既classpath目录下,所以前面加上classpath:)
server.ssl.key-store-password: 密码(就是上面之前设置的密码)
server.ssl.keyStoreType: PKCS12(证书格式,PKCS12格式就是指 p12文件,)
server.ssl.keyAlias: 1(这个是别名,是之前查用领查询出的别名1,貌似大部分情况私有秘钥privateKey都是1,)


三.总结

直接在springboot里面配置是为了应对简单的服务,真正的系统会在nginx上配置证书。
分享到:
评论

相关推荐

    spring boot配置ssl实现HTTPS的方法

    在本文中,我们将详细介绍 Spring Boot 配置 SSL 实现 HTTPS 的方法。HTTPS(Hypertext Transfer Protocol Secure)是一种安全通信协议,旨在提供安全的数据传输。它是基于传输层安全性协议(Transport Layer ...

    Spring Boot实现Undertow服务器同时支持HTTP2、HTTPS的方法

    Spring Boot实现Undertow服务器同时支持HTTP2、HTTPS的方法 在本文中,我们将讨论如何让Spring Boot应用程序同时支持...本文讨论了如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议,并提供了详细的实现步骤。

    详解spring boot配置 ssl

    在本篇文章中,我们将详细介绍如何在 Spring Boot 项目中配置 SSL,以实现安全的数据传输。SSL 协议位于 TCP/IP 协议与各种应用协议之间,为数据通信提供安全支持。 首先,SSL 协议分为两层:SSL 记录协议和 SSL ...

    spring-boot-sample-tomcat-ssl:演示 Spring Boot SSL 配置问题

    本项目 "spring-boot-sample-tomcat-ssl" 专门针对Spring Boot应用程序中的SSL配置问题提供了一个示例。 在Spring Boot应用中,启用SSL通常涉及到以下几个关键步骤: 1. **生成SSL密钥对**:首先,你需要一个SSL...

    spring boot多数据源配置

    本教程将详细阐述如何在Spring Boot项目中实现这一功能,从数据源配置、实体管理到Mapper和Controller的整合。 一、配置多数据源 1. 引入依赖 首先,我们需要在`pom.xml`或`build.gradle`文件中添加相应的Spring ...

    http-->https后端Java接口spring boot项目配置文件及生成证书的方法.7z

    在Spring Boot中,如果你的应用需要SSH访问,可以使用Spring Cloud Config Server或JGit等工具实现配置管理。 总结起来,将Spring Boot应用从HTTP切换到HTTPS,主要涉及证书的生成、配置Spring Boot应用、处理...

    Spring boot 配置参数一览.pdf

    本篇知识点将基于提供的文件内容,详细解析Spring Boot的配置参数。 **核心配置属性(CORE PROPERTIES)** - `spring.config.name`:应用程序配置文件的名称,默认值为'application'。 - `spring.config.location`...

    spring boot https (1.0和2.0)

    - **Spring Boot 1.0**:在Spring Boot 1.0中,可以通过配置`server.ssl.*`属性来启用HTTPS。例如,在`application.properties`或`application.yml`中添加以下内容: ```properties server.port=8443 server.ssl...

    springboot工程验证SSL证书

    本篇将深入探讨如何在Spring Boot项目中配置并验证SSL证书,以实现HTTPS通信。 首先,让我们了解SSL(Secure Socket Layer)和它的升级版本TLS(Transport Layer Security)。SSL/TLS是用于在互联网上进行加密通信...

    spring boot

    这个过程中,Spring Boot 提供的自动配置功能大大简化了集成工作,而 MyBatis 则让我们能够灵活地编写 SQL 查询,实现数据的增删改查。通过这种方式,我们可以快速构建出具有持久层功能的 Java Web 应用程序。

    spring boot maven 连接mysql实现增删改查

    Spring Boot通过内嵌Servlet容器(如Tomcat或Jetty)并自动配置Spring框架,使得开发者可以快速地开始项目开发,无需繁琐的配置工作。 接下来,`Maven`是一个项目管理和综合工具,它管理项目的构建、报告和文档,...

    spring boot中配置mybatis热加载.zip

    下面将详细介绍如何在Spring Boot中配置MyBatis以实现XML资源文件的热加载。 首先,我们需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中添加MyBatis和其Spring Boot starter的依赖。如果是Maven项目,添加...

    spring-boot-sources09-https-http.zip

    3. **Spring Boot配置HTTPS** - 首先需要生成SSL证书(.keystore文件),可以使用Java的keytool工具或者Let's Encrypt等免费证书。 - 在`application.properties`中配置SSL,包括`server.ssl.key-store`、`server....

    spring-boot-https-源码.rar

    通过阅读和理解Spring Boot的源码,我们可以更好地掌握如何在Spring Boot应用中启用和配置HTTPS,同时也能了解Spring Boot如何与Tomcat协作实现安全的网络通信。这对于我们开发安全、高效的Web应用具有重要意义。

    springboot 接收https请求

    本文将详细介绍如何在Spring Boot应用中配置并启用HTTPS,以增强应用程序的安全性。 首先,我们需要了解HTTPS的基本原理。HTTPS是HTTP协议与SSL/TLS协议的结合,其中SSL/TLS负责在客户端和服务器之间建立安全连接。...

    spring Boot 报错RedisConnectionFailureException

    - 如果Redis服务器配置了SSL,你需要开启`spring.redis.ssl=true`并提供相关的SSL证书信息。 6. **Sentinel或Cluster模式**: - 如果你的Redis部署是Sentinel或Cluster模式,需要额外的配置来指示Spring Boot如何...

    spring boot 配置HTTPS代码实例

    本文将通过示例代码详细介绍 Spring Boot 配置 HTTPS 的过程,并对代码进行详细解释。 一、配置文件 在 Spring Boot 中,配置文件是指 application.properties 或 application.yml 文件,这两个文件用于存储应用...

    Spring Boot使用spring-data-jpa配置Mysql多数据源

    在Spring Boot应用中,使用`spring-data-jpa`来配置MySQL多数据源是一项常见的需求,尤其是在构建大型分布式系统时,为了实现数据隔离、负载均衡或读写分离等目的。本教程将详细介绍如何在Spring Boot项目中配置多个...

    Spring Boot 中一些关键参数配置的详细介绍.docx

    本文将详细介绍 Spring Boot 中的一些关键参数配置,帮助开发者更好地理解和使用这些配置项。 #### 二、基本配置 **1. 配置文件** - **`application.properties` 和 `application.yml`** Spring Boot 支持两种...

    Spring boot集成Mybatis通用mapper

    在本文中,我们将深入探讨如何将Spring Boot与Mybatis通用Mapper整合,并利用它们来连接MySQL数据库,实现数据的增删改查操作。Spring Boot以其简洁的配置和强大的自动化配置功能,已经成为开发Java应用的首选框架之...

Global site tag (gtag.js) - Google Analytics