SpringBoot 配置加密证书

1、在云平台下载证书

1、登录阿里云SSL证书控制台。

    2、在SSL证书页面,单击已签发标签,定位到需要下载的证书并单击证书卡片右下角的下载。

3、定位到您需要安装证书的服务器类型并单击右侧操作栏的下载将证书压缩包下载到本地。

   4、将证书解压缩后安装到您的Web服务器上。

    阿里云SSL证书支持安装到以下类型的Web服务器:Tomcat(笔者这里下载的是这个证书,以下都是基于此证书进行操作)ApacheNginxIIS其他

2、将下载的证书通过jdk自带工具生成jks文件

  1、进入到jdk的bin目录,进行cmd操作

  2、 以下为操作命令,其中第一处标红的字,为你下载的证书的路径,第二处标红为你给自己的证书取的名字

 keytool -importkeystore -srckeystore D:\3358419__xftm.com_tomcat\3358419__xftm.com.pfx  -destkeystore xftmapp.jks -srcstoretype PKCS12 -
deststoretype JKS

  3、具体操作如下,笔者红色框框标出来的为笔者操作过程中的错误,以及需要注意的事项

 3、SpringBoot代码

 
  1、将步骤2生成的.jks文件复制到项目中,与application同目录

  2、application启动类

package org.xftm.app;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@EnableSwagger2//Swaggerapi集成,入不需要可直接删除
public class Application {

    @Value("${server.httpPort}")
    private String httpPort;//在yml文件中自定义的http端口
    @Value("${server.httpsPort}")
    private String httpsPort; //在yml文件中自定义https端口

    @Autowired
    RestTemplateBuilder restTemplateBuilider;

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(Application.class);
        application.setBannerMode(Banner.Mode.CONSOLE);//笔者自定义的banner 此处可按照Springboot默认启动方式启动
        application.run(args);
    }

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        System.out.println("httpport="+httpPort);
        System.out.println("httpsPort="+httpsPort);

        // Connector监听的http的端口号
        connector.setPort(httpPort ==null?8080:Integer.valueOf(httpPort));
        connector.setSecure(false);
        // 监听到http的端口号后转向到的https的端口号
        connector.setRedirectPort(httpsPort ==null?443:Integer.valueOf(httpPort));
        return connector;
    }

    @Bean
    public RestTemplate restTemplate() {
        // 使用build()方法进行获取
        return restTemplateBuilider.build();
    }

}

3、ssl的配置

server:
  #htpp转发到https的端口
  port: 8443
  #http请求端口
  httpPort: 8767
  #https请求端口
  httpsPort: 8443
  ssl:
    key-store:  classpath:xftmapp.jks
    key-store-password:  TVPxezV9
    key-store-type:  JKS
    key-alias:  alias
  context-path: /XftmApp
    #address: 0.0.0.0
  tomcat:
      #uri-encoding: UTF-8
    max-threads: 2000
    max-connections: 20000

4、测试(笔者不演示自己的路径)

请求方式为:http://ip:httpPort/

请求方式为:https://ip:httpsPort/

原文地址:https://www.cnblogs.com/JavaHxm/p/12202444.html

时间: 2024-07-31 17:36:48

SpringBoot 配置加密证书的相关文章

SpringBoot配置SSL证书支持

纯copy 非原创,原文链接:https://blog.csdn.net/sinat_40399893/article/details/79860942 Spring Boot配置ssl证书 一.申请有权威的SSL证书 在各大云服务商都可以申请到SSL官方证书. 我这里是在阿里云上申请的,申请后下载,解压.如图:  二.用JDK中keytool是一个证书管理工具,压缩成tomcat所支持的.jks 1.打开你安装的jdk目录下 2.打开dos命令框(命令提示符) 2.1.进入JDK所在的盘符,我

springboot配置ssl证书

springboot默认使用的是tomcat: 1.先到阿里云上注册一个证书,绑定域名:后面可以在管理中下载证书,下载tomcat对应的证书(一个*.pfx文件和*.txt文件) 2.将pfx文件拷贝到项目资源目录(src/main/resources/)下: 3.进行配置: server: ssl: key-store: classpath: xxx.pfx(下载的tomcat证书文件) key-store-password: xxx(txt文件中的内容) keyStoreType: PKCS

springboot中数据库配置加密

在springboot中,配置数据库等信息时,用户名和密码明文显示会大大降低安全性,在此介绍一种加密方式,简单易用. 添加依赖: <dependency>    <groupId>com.github.ulisesbocchio</groupId>    <artifactId>jasypt-spring-boot-starter</artifactId>    <version>1.8</version> </de

腾讯云域名申请+ssl证书申请+springboot配置https

阿里云域名申请 域名申请比较简单,使用微信注册阿里云账号并登陆,点击产品,选择域名注册 输入你想注册的域名 进入域名购买页面,搜索可用的后缀及价格,越热门的后缀(.com,.cn)越贵一般,并且很可能已经被注册. 最后,付款购买即可. 申请ssl证书 还是进入首页,点击产品按钮,在下拉菜单中选择ssl证书,进入后点立即购买,在下图中做如下选择 ssl证书是要与域名绑定的,按要求填好域名和邮箱,密码可以不填 填写好,选择下一步,然后选择手动dns,提交,然后查看证书详情. 进入域名解析页面,找到你

Springboot配置ssl使用https

SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持.SSL协议分为两层,SSL记录协议建立在TCP之上,为高层协议提供数据封装.压缩.加密等基本功能支持.SSL握手协议建立在SSL记录协议之上,用户实际数据传输开始前进行身份验证.协商加密算法.交换加密秘钥. 1.生成证书,可以使自签名或者从SSL证书授权中心获得的. JDK中

&lt;Apache服务的搭建"三件套"《目录验证》《虚拟主机》《加密证书》&gt;

自己没事会整理一些小知识,复习原来的同时也帮助新手. vvvvvvvvvvvvv开启apache目录验证vvvvvvvvvvvvvv htpasswd -cm uers redhat  //redhat用户是虚拟的用户uers为生成加密用户的密码文件 # htpasswd -cm uers redhat  //第二次这样输入它会把第一次的输入覆盖掉 [[email protected] httpd]# cat uers redhat:$apr1$8X/YcAoY$xlwRboAtWudU26kr

tomcat配置加密的连接器https

对称加密:加密和解密用的是同样的密钥. 非对称加密:使用一对密钥,公钥和私钥,私钥只由一方保管,不能外泄:公钥可以发给任何请求它的人 那么得到公钥的一方怎么确定这个公钥是服务器发过来的呢? 这个就需要就公钥到第三方认证机构认证,生成数字证书,这个数字证书里面包含有公钥. 现在客户端要向服务器发送消息,服务器怎么知道这个消息是A发过来的而不是B或者C发过来的呢? 这时客户端也生成一对公钥和私钥,私钥自己保管,公钥向外发布.客户端将数据和数据的数字签名(也叫消息摘要,数据经MD5算法生成的)一起用私

Nginx配置SSL证书部署HTTPS网站(转)

原文:http://www.lovelucy.info/nginx-ssl-certificate-https-website.html 一.什么是 SSL 证书,什么是 HTTPS SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现: 1.数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听: 2.用户可以通过服务器证书验证他所访问的网站是否真实可靠. (via百度百科) HTT

[转载]JavaEE学习篇之——网络传输数据中的密码学知识以及Tomcat中配置数字证书EE

原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/21716557 今天是学习JavaWeb的第二天,我们来了解什么呢?就了解一下Tomcat中配置数字证书的相关内容,但是在说这部分内容的时候,我们貌似得先说一下数字证书的相关概念,那说到数字证书的时候我们还得了解一些密码学的相关知识,这就是连锁反应吗?好吧不多说了,先来看一下密码学中关于网络中数据传输的知识. 首先来了解一下网络上传输数据的加密方式: 第一种是对称加密:就是