【SSL】如何使用SpringBoot内置的tomcat配置SSL,从而实现HTTPS访问(基于阿里云云服务器)


前言

最近在捣腾一个小程序,我负责完成后端接口的设计、功能的实现。由于小程序中请求接口需要https格式,因此在使用tomcat部署代码时,出了点小问题,写一篇博客记录一下,方便自己也方便他人。


正文

在实现https访问之前,我们需要下载SSL证书,由于我用的是阿里云服务器,所以可以直接从阿里云中申请免费的证书

SSL证书的申请

先进入阿里云控制台,在产品与服务中找到SSL证书,如下图所示
在这里插入图片描述
找到你申请过的SSL证书(由于笔者已经申请过,且申请教程在网上有很多,这里不讨论如何申请,如果不懂的可以直接戳下面的教程申请SSL证书最新阿里云申请免费SSL证书实现网站HTTPS化(图文教程一)

选中已签发,点击你的SSL证书并下载
在这里插入图片描述
这里根据大家的服务器进行下载,由于我用的是tomcat,所以直接下载tomcat版本的证书
在这里插入图片描述
下载之后的文件内容如下,其中包括一个pfx文件,一个pfx密码文件,到这一步证书的准备工作就完毕了。
在这里插入图片描述

将证书复制到项目中并进行配置

打开我们的项目目录,在src->main->resources中,把我们刚刚的证书文件放进去
在这里插入图片描述
打开application配置文件,添加如下代码
其中key-store: 填写你的pfx证书文件,比如key-store: classpath:1234567_baidu.cn.pfx
key-store-password: 填写pfx-password.txt文件中的密码
(注意!!!每个属性的分号后面必须加个空格,比如port: 443,而不是port:443)

server:
  port: 443
  ssl:
    key-store: classpath:
阿里云Spring Boot项目中配置SSL证书是为了提供安全的HTTPS连接,确保数据传输过程中的加密。以下是基本步骤: 1. **获取SSL证书**: - 登录阿里云控制台,选择SSL证书服务,购买并下载合适的证书文件(通常是`.pem`格式,包含公钥和私钥)以及对应的中间证书链(如果有)。 2. **将证书复制到服务器**: 将私钥(`*.key`)和公钥(`*.crt`或`.pem`)文件上传到服务器的合适位置。通常放在`/etc/ssl/private`(私钥)、`/etc/ssl/certs`(公钥)目录下。 3. **修改Tomcat配置**: 如果使用的是内置Tomcat服务器,打开`server.properties`或`application.properties`(取决于你的Spring Boot版本),添加以下内容: ``` server.tomcat.ssl.key-store-type=PKCS12 server.tomcat.ssl.key-store=/path/to/your/key.p12 server.tomcat.ssl.key-store-password=your_key_password server.tomcat.ssl.trust-store=/path/to/your/cert.pem 或 chain.pem (如果有的话) server.tomcat.ssl.trust-store-password=your_cert_password ``` 确保替换路径和密码为你实际的值。 4. **启用HTTPS**: 在Spring Boot应用中,你需要开启HTTPS支持。可以在`Application`主类上添加`@SpringBootApplication`注解,并配置: ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); SecurityProperties security = new SecurityProperties(); security.setServerPort(8443); // 修改为你希望的端口 WebSecurity web = new WebSecurityConfigurationAdapter() { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/**").authenticated() .and() .httpBasic(); } }; SpringApplication.run(Application.class, args, "--spring.http.port=8443", "--server.servlet.context-path=/"); } } ``` 5. **重启应用**: 重启Spring Boot应用,它应该会监听指定的HTTPS端口,并可以访问了。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值