美文网首页SpringbootSpring Boot 从入门到上瘾
SpringBoot 开启https和http重定向(基于SSL

SpringBoot 开启https和http重定向(基于SSL

作者: 一只袜子 | 来源:发表于2019-01-13 22:43 被阅读13次

SpringBoot 开启https和http重定向可以在本地环境快速模拟一番。

学习目标

  • 快速掌握SpringBoot开启HTTPS服务。

快速查阅

专题阅读:《SpringBoot 布道系列》

官方教程:SpringBoot Configure SSL

使用教程

一、生成密钥

首先在终端执行如下命令,然后在当前路径可以拿到密钥文件。

keytool -genkey -alias localhost -keyalg RSA -keypass 123456 -keystore socks.jks -storepass 123456 -dname "cn=localhost,ou=localhost,o=gz,l=gz,st=gz,c=cn"

二、配置密钥

然后将密钥文件socks.jks 复制到当前项目的resources/static 静态目录,防止打包时丢失此文件!!

application.yml添加如下配置:

server:
  port: 8080
  ssl:
    key-store: classpath:static/socks.jks #路径说明:加密文件放在类路径下的静态目录可以自动编译 防止打包丢失文件
    key-store-password: 123456
    key-password: 123456

网上很多文章都没有重点强调关于路径的问题,所以特意加了注释。

三、添加重定向

其实有了上面的SSL配置,已经默认实现https的访问了,下面是监听额外的http端口并重定向到当前应用的https端口。

@SpringBootApplication
public class MailTempApplication {
    public static void main(String[] args) {
        SpringApplication.run(MailTempApplication.class);
    }
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(8081);//监听HTTP端口
        connector.setRedirectPort(tomcat.getPort());//转发HTTPS端口
        tomcat.addAdditionalTomcatConnectors(connector);
        return tomcat;
    }
}

四、测试https和http重定向

默认监听https:https://localhost:8080

额外监听http:http://localhost:8081 重定向到 https://localhost:8080

五、小结

1、SpringBoot开启https只需要在配置文件添加SSL证书即可。

2、SpringBoot开启http重定向需通过ServletWebServerFactory来实现。

3、生产环境通常并不会像文章里这么做,而是通过https域名来映射到应用主机。例如通过网络管理或者Nginx等方式让 http://www.socks.com 映射到 https://www.socks.com

相关文章

  • SpringBoot 开启https和http重定向(基于SSL

    SpringBoot 开启https和http重定向可以在本地环境快速模拟一番。 学习目标 快速掌握SpringB...

  • 本人小记HTTPS

    What is HTTPS? HTTPS = HTTP + SSL/TLS 。 SSL/TLS基于TCP,工作在O...

  • 网站(Nginx)配置 HTTPS 完整过程

    配置站点使用 https,并且将 http 重定向至 https。 1. nginx 的 ssl 模块安装 查看 ...

  • HTTP基础

    HTTP:HyperText Transfer Protocol 超文本传输协议 HTTPS:HTTP基于SSL及...

  • iOS面试总结

    前言,不想过安逸的生活,遂开启了面试之路 http 和 https https就是http和TCP之间有一层SSL...

  • Https协议

    Https协议原理 简单地来说,是基于ssl的http协议,依托ssl协议,https协议能够确保整个通信是加密的...

  • Apache https301重定向跳转http规则方法教程

    https如何强制301重定向到http?网上都是关于http 301跳转到https的教程,如果不想开启http...

  • CloudFlare 使用相关

    SSL OFF(关闭):没有访问者能够通过HTTPS查看您的网站;他们将被重定向到HTTP。 Flexible S...

  • HTTPS SSL SHA

    HTTP基于TCP/IP的超文本传输协议 HTTPS=HTTP+SSL SSL位于传输层与应用层之间的安全协议采用...

  • 网络相关之HTTPS

    一、HTTPS和HTTP的区别 HTTPS协议 = HTTP协议 + SSL/TLS协议SSL的全称是Secure...

网友评论

    本文标题:SpringBoot 开启https和http重定向(基于SSL

    本文链接:https://www.haomeiwen.com/subject/obcrdqtx.html