springboot本地生成ssl证书使用https访问(亲测可用)

1.本地使用jdk生成ssl证书:
      jdk安装目录bin下面执行:keytool -genkey -alias tomcat -keyalg RSA -keystore testserver.keystore
testserver.keystore为自定义生成的ssl证书.
证书生成中需要填写的校验:
在这里插入图片描述

将生成的证书放到springboot根目录.
2.springboot项目中配置:

  # ssl证书设置
  server:
   ssl:
    enabled: true
    key-store: classpath:证书所在的项目路径
    key-store-password: 输入自己设置的密码
    keyAlias: tomcat
    keyStoreType: JKS

启动项目可能会报错:
Invalid keystore format
解决方案:
pom.xml中添加配置

 <resource>
            <directory>src/main/resources/config</directory>
            <filtering>false</filtering>
        </resource>
 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration><encoding>UTF-8</encoding>
                    <!-- 过滤后缀为pem、pfx、keystore的证书文件 -->
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>cer</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pem</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>keystore</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>

2.使用阿里云下发的ssl证书
本地生成的ssl证书是不受客户端信任的,仅做测试用,可以使用第三方下发的证书,下面说一下使用阿里云下发的证书配置.阿里云生成免费证书案例有很多不在此重述.只说一下配置问题.配置和上面配置过程基本相同,需要注意一下证书配置,注意修改keyStoreType类型以及证书所在路径以及密码.

# ssl证书设置
  server:
   ssl:
    enabled: true
    key-store: classpath:下发证书所在的路径
    key-store-password: 证书密码
    keyStoreType: PKCS12

配置之后访问:https://项目域名:端口/接口 即可.
3.暂不支持同时https与http同时访问,文档后续更新

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Spring Boot是一个用于创建独立的、基于生产级别的Java应用程序的框架。腾讯云提供了SSL证书服务,可以用于保护Spring Boot应用程序的安全通信。 要在Spring Boot应用程序中使用腾讯云SSL证书,你需要进行以下步骤: 1. 在腾讯云控制台购买SSL证书,并获取证书文件和私钥文件的名称。 2. 在Spring Boot的配置文件中添加SSL证书的相关配置。你需要指定证书文件的路径、密码和类型。例如,你可以在配置文件中添加以下配置: ``` server.port=443 server.ssl.key-store=classpath:your_certificate_file.jks server.ssl.key-store-password=your_certificate_password server.ssl.key-store-type=JKS ``` 3. 修改启动类,将HTTP请求重定向到HTTPS。你可以在启动类中添加以下代码: ```java @Configuration public class HttpsRedirectConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("forward:/index.html"); registry.addViewController("/index.html").setViewName("forward:/index.html"); registry.addViewController("/login.html").setViewName("forward:/login.html"); } @Bean public TomcatServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() { @Override protected void postProcessContext(Context context) { SecurityConstraint securityConstraint = new SecurityConstraint(); securityConstraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/*"); securityConstraint.addCollection(collection); context.addConstraint(securityConstraint); } }; tomcat.addAdditionalTomcatConnectors(httpConnector()); return tomcat; } @Bean public Connector httpConnector() { Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL); connector.setScheme("http"); connector.setPort(80); connector.setSecure(false); connector.setRedirectPort(443); return connector; } } ``` 这样,当用户访问HTTP时,会自动重定向到HTTPS。 请注意,以上代码仅供参考,你需要根据你的具体情况进行相应的修改。 综上所述,你可以通过购买腾讯云SSL证书,并在Spring Boot应用程序中配置相关信息,来实现在腾讯云上使用SSL证书保护你的Spring Boot应用程序的安全通信。 #### 引用[.reference_title] - *1* [Spring Boot配置腾讯云SSL证书](https://blog.csdn.net/qq_36023564/article/details/85019640)[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^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [腾讯云免费ssl证书+springboot配置ssl+nginx配置ssl](https://blog.csdn.net/lmq2582609/article/details/117487472)[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^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卖柴火的小伙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值