Springboot配置ssl使用https

SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。SSL协议分为两层,SSL记录协议建立在TCP之上,为高层协议提供数据封装、压缩、加密等基本功能支持。SSL握手协议建立在SSL记录协议之上,用户实际数据传输开始前进行身份验证、协商加密算法、交换加密秘钥。

1.生成证书,可以使自签名或者从SSL证书授权中心获得的。

JDK中keytool是一个证书管理工具,可以生成自签名证书。

JDK中keytool是一个证书管理工具,可以生成自签名证书。 
本人这里用的系统是deepin,然后生成命令如下(找不到keytoo命令的先去配置java环境) 
我指定的名字叫tomcat.keystore 别名叫tomcat,密码自己设置,我这里用的tomcat,最后那个直接按得回车

keytool -genkey -alias tomcat -keyalg RSA -keystore /home/gzr/tomcat.keystore

我的命令执行记录如下,(前提:在本地要创建目录,否则会失败)

结果是生成了对应的文件,如下:

2.SpringBoot配置SSL

1.先建立一个index.html到src/main/resources/static下,待会作为测试 
2.将这个tomcat.keystore拷贝到项目根目录下(项目根目录,比如我的idea项目叫spring-cloud-demo01,然后这里我这个module叫springbootmy,所以我们的证书应该放在spring-cloud-demo01下) 
3.让后配置application.properties

#端口号
server.port: 8443
#你生成的证书名字
server.ssl.key-store: E:\work\rave\tomcat.keystore
#密钥库密码
server.ssl.key-store-password: duan123
server.ssl.keyStoreType: JKS
server.ssl.keyAlias: tomcat

此刻启动项目,输入 https://localhost:8443/即可。

3、配置自动跳转

后面像你平时输入http://www.baidu.com会自动跳转到https看下实现吧,在运行主类里面,加入如下代码

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.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.context.annotation.Bean;

@SpringBootApplication
public class SpringbootmyApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootmyApplication.class, args);
    }

  @Bean  public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){//2.0之前的对象是EmbeddedServletContainerFactory	           TomcatServletWebServerFactory webServerFactory = new TomcatServletWebServerFactory(){//2.0之前的对象是TomcatEmbeddedServletContainerFactory		               protected void postProcessContext(Context context){		SecurityConstraint securityConstraint=new SecurityConstraint();		securityConstraint.setUserConstraint("CONFIDENTITAL");		SecurityCollection collection=new SecurityCollection();	        collection.addPattern("/*");		securityConstraint.addCollection(collection);		context.addConstraint(securityConstraint);		  }	  };	  webServerFactory.addAdditionalTomcatConnectors(connector);      return webServerFactory;  }

  @Bean   public Connector httpConnector(){	  Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");	  connector.setScheme("http");	  connector.setPort(8080);	  connector.setSecure(false);	  connector.setRedirectPort(8443);	  return connector;  }  

}

此时运行http://localhost:8080,会自动跳转到https://localhost:8443

原文地址:https://www.cnblogs.com/zouhong/p/11827145.html

时间: 2024-08-02 10:13:07

Springboot配置ssl使用https的相关文章

【转】【链接】SpringBoot配置SSL同时支持http和https访问

SpringBoot配置SSL同时支持http和https访问:https://blog.csdn.net/qq_38288606/article/details/89478353#comments 原文地址:https://www.cnblogs.com/xiaostudy/p/12358297.html

Apache配置SSL 实现https访问

本次坏境:CA和apache为同一台主机 先使本机作为CA服务端: [[email protected]~]#yum -y install openssl openssl-devel [[email protected]~]#vi /etc/pki/tls/openssl.cnf [ CA_default ] dir = ../../CA 改为: [ CA_default ] dir= /etc/pki/CA 为了减少不必要的重复操作,可以预先定义[ req_distinguished_name

Windows下Nginx配置SSL实现Https访问(包含证书生成)

Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https? HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容.超文本内容则以HTML为主,客户端拿到HTML内容后可根据规范进行解析呈现.因此,HTTP主要负责的是"内容的请求和获取".问题就出在这部分.行监控.劫持.阻挡等行为很容易导致网站泄密,一些关键参数比如登录密码开发者会在客户端

Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796.html) 2.证书颁发机构(CA)颁发的有效证书,其中我们需要两个文件,一个是 .key文件(私钥),另一个是 .crt或.pem文件(公钥) 核心功能 ? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量. ? 通过配置nginx.conf文件来加强

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所在的盘符,我

Centos7.5 下Nginx配置SSL支持https访问。

核心配置: ? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量.? 通过配置nginx.conf文件来加强安全性.示例包括选择更强大的密码,并将所有流量通过HTTP重定向到HTTPS.? 添加HTTP Strict-Transport-Security(HSTS)头部确保客户端所做的所有后续请求仅通过HTTPS. ####################################################################

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

windows下apache配置ssl(https)服务器

SSl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全, 可以通过apache自带的openssl进行配置: 步骤如下: 1.安装有openssl模板的apache,大多数都会有,判断有没有 只需要查看 apache\bin 下有没有 openssl.exe 运行程序: 2.配置 apache/conf/httpd.conf 文件,如下: #LoadModule ssl_module modules/mod_ssl.so #Include conf/extra

Mac下安装nginx并配置SSL实现Https的访问

一.nginx安装 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install nginx    // 安装nginx nginx -v    // 显示版本号 打开nginx文件夹 cd /usr/local/etc/nginx 启动nginx sudo nginx 或者 nginx 在浏览器中输入 localhost 访问即可,如出现以下