SpringBoot后端服务开启Https协议提供访问(使用阿里云资源)

这篇具有很好参考价值的文章主要介绍了SpringBoot后端服务开启Https协议提供访问(使用阿里云资源)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

概述

 申请/下载证书

部署证书

本地测试访问

服务器部署访问

 最后/扩展

总结


概述

本篇博客说明如何将SpringBoot项目开启Https协议提供访问。

博文以步骤【申请/下载证书】,【部署证书】,【本地测试访问】,【服务器部署访问】 ,【扩展】展开说明。

废话:当我们有类似需求:“小程序上线”后,请求的后端服务必须使用https协议,那么我们就需要去将http协议升级为https协议了。

https协议?大致可以看成: 

https协议 = http协议 + ssl协议

所以,要想将http升级成https很简单,只需要有一个ssl证书,然后部署到项目即可。

前提准备:IPC备案过的域名

那么,如下就开始我们的说明。 

 申请/下载证书

我使用的是阿里云的服务器和域名,因此可以到阿里云官网搜索【ssl证书】进入【数字证书管理服务】控制台。

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 我们点击【免费证书】--->【创建证书】--->【证书申请】

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot 输入自己备案好的域名,其他基本默认,点击【提交审核】

审核基本上几分钟就可以下发证书,会有短信提示。

审核好后,我们就可以点击【下载】,获取我们的证书。 

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 我使用的是SpringBoot项目做的测试,使用内置服务器Tomcat,因此直接下载Tomcat对应证书。SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 下载的压缩包内容:

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 第一个是我们的证书,第二个是密码文本文件(存储密码)。

部署证书

我创建了一个空的SpringBoot项目来做演示,写了一个简单的接口来测试:

 项目结构   

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 IndexController(测试接口)

 SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 1.将证书放到resources目录下

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 2.编写配置文件application.yml

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

***key-store声明证书的放置的路径

 ***请注意key-store-password填写自己下载的压缩包.txt文件里面的密码

 到此,我们启动项目即可。

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

本地测试访问

我们使用Postman进行测试。

ps:当我们使用本地进行测试的时候,由于本地的IP与我们申请证书时添加的IP不一致,那么Postman会报错IP不匹配,我们可以不用理会,点击【Disable SSL Verification】关掉SSL验证即可。

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 成功。

服务器部署访问

我们将SpringBoot项目打包,上传到服务器, java -jar运行,然后Postman测试: 

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 当然,我们也可以使用域名(申请证书时填写的域名)进行访问。

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

 最后/扩展

我们可能会有这样的需求:

我们也许不是一开始做项目就部署了SSL证书,而是后期再部署SSL证书,那么我们在此之前前端项目使用的是http协议进行后端服务访问,那么我们能不能不修改前端的代码,想要http协议和https协议都能访问呢?

这是可以的,我们可以将http协议的访问重定向到https协议进行访问即可。

这样做后,我们后端服务跑起来的时候就会开启两个端口,一个http的端口,一个https的端口。

在启动类中进行配置

package com.mh;

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.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class SslTestApplication {

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

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection securityCollection = new SecurityCollection();
                securityCollection.addPattern("/*");
                securityConstraint.addCollection(securityCollection);
                context.addConstraint(securityConstraint);
            }
        };
        factory.addAdditionalTomcatConnectors(httpConnector());
        return factory;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        // http的端口
        connector.setPort(8080);
        connector.setSecure(false);
        // http的端口后转向到的https的端口
        connector.setRedirectPort(443);
        return connector;
    }
}

当然,你也可以做配置类,我这里直接放到启动类了,只要能将他们加到IOC容器即可生效。

 配置好后,我们再打包,重新放到服务器运行,浏览器测试:

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

回车后,自动跳转访问https

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源),服务器/部署,https,网络协议,http,spring boot

总结

开启Https很简单,总的来说只需要下载一个SSL证书进行部署即可。文章来源地址https://www.toymoban.com/news/detail-651540.html

到了这里,关于SpringBoot后端服务开启Https协议提供访问(使用阿里云资源)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包