申请SSL免费证书,在SpringBoot配置https

本文介绍了如何在SpringBoot项目中申请并配置免费SSL证书,以及通过修改配置文件实现HTTP到HTTPS的自动跳转。步骤包括在阿里云申请SSL证书,更新SpringBoot的`application.properties`,添加安全约束以强制HTTPS访问,并处理可能出现的域名解析、实名认证和网站备案问题。
摘要由CSDN通过智能技术生成

1.申请SSL 免费证书

首先去腾讯云或者阿里云申请免费ssl证书,以阿里云云为例,不建议自己生成,因为没办法测试发布环境的效果,填写个人信息,最后提示审核中才是申请成功,审核比较快,半小时就通过了。

2.修改springboot配置文件application.properties

新建springboot项目,将上一步生成的keystone文件复制到项目的根目录,在application.properties添加如下配置

server.port=443        #https 默认端口
server.port.http=80  #http 端口,这样网站不用加端口访问
server.ssl.key-store=classpath:*************.pfx  ##证书文件
server.ssl.key-store-password=********  ##证书密码,一般为下载文本里面的内容
server.ssl.keyStoreType=PKCS12  ##pfx文件适用格式

3.http访问自动转https访问

向spring容器中注入Bean,代码如下

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ConnectorConfig {

    @Value("${server.port.http}")
    private int serverPortHttp;

    @Value("${server.port}")
    private int serverPortHttps;

    @Bean
    public ServletWebServerFactory servletWebServerFactory() {
        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(redirectConnector());
        return factory;
    }

    private Connector redirectConnector() {
        Connector connector = new Connector(Http11NioProtocol.class.getName());
        connector.setScheme("http");
        connector.setPort(serverPortHttp);
        connector.setSecure(false);
        connector.setRedirectPort(serverPortHttps);
        return connector;
    }
}

4.通过域名访问失败原因及解决办法

1.域名未配置解析,去域名管理配置解析,10分钟后通过ping 域名看是否显示ip,显示则解析成功!

2.域名未认证,去域名管理上传个人信息进行域名实名!

3.域名已实名但未网站未备案,解决办法去进行网站实名,使用腾讯云小程序认证进行icp备案即可!可以通过域名访问但必须加上自定义端口才行,不能使用8080或443等默认端口,否则提示连接已重置!

4.设置允许访问端口

Spring Boot配置SSL证书以实现HTTPS访问有几个步骤。首先,你需要获取SSL证书文件。 然后,你可以按照以下步骤进行配置: 1. 将证书文件(通常是以.crt或.pfx为后缀的文件)复制到项目的资源目录下,比如src/main/resources。 2. 在项目的配置文件(通常是application.properties或application.yml)中添加以下配置: ``` server.port=443 server.ssl.key-store-type=PKCS12 server.ssl.key-store=classpath:your_certificate_file.pfx server.ssl.key-store-password=your_certificate_password ``` 其中,your_certificate_file.pfx是你复制的证书文件名,your_certificate_password是证书的密码。 3. 启动项目后,你可以通过HTTPS访问你的应用程序。你可以在浏览器中输入https://localhost 来尝试。 请确保在配置过程中提供正确的证书文件和密码,并将其与你的应用程序相匹配。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot配置SSL证书HTTPS访问](https://download.csdn.net/download/ningyunyuyi/10545683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [使用SpringBoot配置https(SSL证书)](https://blog.csdn.net/yucaifu1989/article/details/124384022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SpringBoot配置SSL证书](https://blog.csdn.net/qq_40247570/article/details/122549072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值