SpringBoot 使用HTTPS服务,HTTP转HTTPS 阿里云域名证书

本文详细介绍HTTPS原理及其与HTTP的区别,重点讲解如何在SpringBoot项目中配置HTTPS,包括从阿里云获取免费SSL证书并应用于项目的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天在阿里云买了个域名,送给了我一个免费的证书,闲来无事搞一搞https。

首先我们先要了解一下https是什么

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

  HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。https://www.cnblogs.com/wqhwe/p/5407468.html

每一个证书都对应一个域名,即使你的证书和秘钥被窃放到他自己的网站那也是无用的。

ok,因为我这里是从阿里云免费提供的一个https服务,所以我先下载下来。(一般从阿里云买的域名都会有一个免费开启SSL的证书  如图所示)

进去就可以去申请一个免费的SSL证书,有效期为一年。然后下载相对于的证书。我们这里是springboot项目,所以就下载tomcat版本。

下载完成之后,就是这样两个东西,一个是pfx的证书,一个是秘钥。

然后我们有了这两个东西,我们现在就去项目中去配置他们。

下面是application.properties配置文件

server.port=443
server.ssl.key-store=classpath:1552210_www.chuanzigeblog.com.pfx
server.ssl.key-store-password=H1c72FDq
httpPort=80
httpsPort=443

下面是启动类要配置的东西 

   @Value("${httpPort}")
    private Integer httpPort;

    @Value("${httpsPort}")
    private Integer httpsPort;

    @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");
        //Connector监听的http的端口号
        connector.setPort(httpPort);
        connector.setSecure(false);
        //监听到http的端口号后转向到的https的端口号
        connector.setRedirectPort(httpsPort);
        return connector;
    }

配置完成之后我们就可以访问我们的项目了,看看是不是输入http也跳转到了https,而且连接也是安全的。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值