Springboot工程配置https访问

背景

因为前端工程使用nginx配置了https访问,在https直接请求我们Springboot后端的http接口会报错。那么我们就需要配置使得我们后端的springboot服务支持https访问。

证书生成

在配置springboot工程https之前,我们需要生成自签名证书以及Spring Boot通常使用的PKCS#12格式的密钥库。

  • 生成自签名证书
openssl req -x509 -newkey rsa:4096 -keyout keystore.key -out keystore.crt -days 365

其中-days 365:证书有效期为365天。

执行此命令后,系统将提示你输入一些证书信息,如国家、州/省、城市、组织等。这些信息将被嵌入到证书中。

  • 创建PKCS#12文件
openssl pkcs12 -export -in keystore.crt -inkey keystore.key -out keystore.p12 -name myalias -CAfile keystore.crt -caname root -chain

这条命令将执行以下操作:

-export:导出PKCS#12文件。
-in:指定证书文件的路径。
-inkey:指定私钥文件的路径。
-out:指定PKCS#12文件的输出路径(这里是keystore.p12)。
-name:指定密钥库中的别名(这里是myalias)。
-CAfile:指定证书文件(这里是keystore.crt)。
-caname:指定CA的名称(这里是root)。
-chain:包含整个证书链。

系统将提示你输入密码以保护PKCS#12文件,我们同样设置为myalias。现在,我们已经生成了一个自签名证书和一个keystore.p12文件的密钥库。

工程配置

得到keystore.p12密钥库文件之后,我们只需要完成以下两步就可以完成springboot工程的https访问。

  • 添加ssl配置类
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SslConfig {

    @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> servletContainer() {
        return factory -> {
            Ssl ssl = new Ssl();
            // 配置SSL属性
            ssl.setKeyStore("classpath:keystore.p12");
            // 上面配置密钥库的密码
            ssl.setKeyStorePassword("myalias");
            ssl.setKeyStoreType("PKCS12");
            // 密钥库的别名
            ssl.setKeyAlias("myalias");
            factory.setSsl(ssl);
        };
    }
}

注意上面配置类的配置改成自己的。

  • 导入密钥库文件

把上面生成的keystore.p12密钥库文件放到springboot工程的resources文件夹下。

到现在就完成了springboot服务的https改造。如果你之前的服务端口是8080,那么现在你可以使用https://127.0.0.1:8080访问你的服务!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置Spring Boot整合ActiveMQ,你可以按照以下步骤进行操作: 1. 添加ActiveMQ依赖: 在你的项目中的pom.xml文件中,添加以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> ``` 2. 配置ActiveMQ连接信息: 在你的application.properties或application.yml文件中,添加以下配置: ``` spring.activemq.broker-url=tcp://localhost:61616 spring.activemq.user=admin spring.activemq.password=admin ``` 这里,你需要设置ActiveMQ的通信地址,以及账户名和密码。 3. 配置队列或主题模式: 默认情况下,ActiveMQ提供的是队列模式。如果你想使用主题模式,可以添加以下配置: ``` spring.jms.pub-sub-domain=true ``` 4. 启动ActiveMQ服务器: 你需要启动ActiveMQ服务器来进行消息的发送和接收。可以通过在浏览器中访问http://localhost:8161,使用管理员账户名和密码(admin/admin)登录ActiveMQ管理界面来启动服务器。 这样,你就可以在Spring Boot项目中成功配置和使用ActiveMQ了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java springboot整合activemq工程](https://download.csdn.net/download/weixin_47315082/88136003)[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整合ActiveMQ](https://blog.csdn.net/weixin_45698637/article/details/123443728)[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篇》25.SpringBoot整合ActiveMQ](https://blog.csdn.net/weixin_47343544/article/details/128164353)[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、付费专栏及课程。

余额充值