springboot的https即SSL证书配置

因小程序后台需https请求,SSL证书配置不可或缺。文章介绍了获取SSL证书、将其打包为jks文件的方法,强调了打包时密码输入的注意事项,还提及配置application.properties,最后说明了http自动跳转为https的相关内容。

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

前言

因为小程序所请求的后台必须为https://所以SSL证书配置不可获缺,这里不能使用tomcat自制证书必须去购买各大云服务器都有免费的证书可以申请

一、搞个证书

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
专家安装84元????没错,本篇文章价值84元,就算我不是专家,那也值80元

  • 下载之后解压到一个文件夹里面包含2个文件在这里插入图片描述
  • TXT文件中包含的就是密码

二、打包为jks文件

  • 为啥要打包为jks文件?
    • 因为Tomcat 目前只能操作 JKS、PKCS11、PKCS12 格式的密钥存储库
  1. 在CMD中进入jdk的bin目录
  2. 输入转换命令
keytool -importkeystore -srckeystore G:\https\2247331_abstergo.xin.pfx -destkeystore myWeb.jks -srcstoretype PKCS12 -deststoretype JKS
  • G:\https\2247331_abstergo.xin.pfx就是第一步中解压的地址
    在这里插入图片描述
    这里要输入3个密码来字解压文件中的TXT文件内的密码
    不要看他说输入新口令,信了就两个小时后见。实际上必须输入那一个密码,要输入三次一样,输入三次一样,输入三次一样!!!,不然会一直报端口被占用这个错,不要问我为什么,我找了2个小时,找了所有的帖子都没有解决的办法,还好我机智…
  • 记住别名,配置文件中需要填写,记不住也没关系,反正可以查
    在这里插入图片描述
    回车之后会多出这样一个文件,复制到resource目录下与application.properties同级
  • 检查是否建立成功(也可以查看别名
    keytool -list -v -keystore myWeb.jks
    检测jks是否有误
    在这里插入图片描述

    三、配置application.properties

    jks文件要和application.properties同级
    在这里插入图片描述
    	#https加密端口号 443
    	server.port=443
    	#SSL证书路径 一定要加上classpath:
    	server.ssl.key-store=classpath:myWeb.jks
    	#SSL证书密码
    	server.ssl.key-store-password=你的密码
    	#证书类型
    	server.ssl.key-store-type=JKS
    	#证书别名
    	server.ssl.key-alias=alias
    
    没有classpath:也会报端口被占用的错,人类的本质是…

四、http自动跳转为https

package com.example.demo;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
	/**
	 * http重定向到https
	 * @return
	 */
	@Bean
	public TomcatServletWebServerFactory servletContainer() {
		TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
			@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(1024);
		connector.setSecure(false);
		//监听到http的端口号后转向到的https的端口号
		connector.setRedirectPort(443);
		return connector;
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值