如何在springboot中生成https接口

如何在springboot中生成https接口

生成https接口需要先有一个认证证书,其他的变化不大(注:这个适合安全性没有那么高的方案,毕竟本地的,正规的还需要域名生成证书操作)

1.找对地方执行keytool

找到自带的java位置,例如我的C:\Java\bin,在这里打开命令行,不要去执行keytool.exe文件,没有用

2. 输入指令

keytool -genkeypair -alias bxgd -keystore C:\Users\Administrator\Desktop\ssl\bxgd.jks -keypass bxzn1234 -storetype JKS  -storepass bxzn1234  -keyalg RSA -keysize 2048 -validity 3650

注意一下别名叫啥 还有密码 (我这里是bxgd,密码bxzn1234) 位置自己选个位置,也就是说alias 后面是别名,keystore是文件生成位置,storetype 是文件格式,注意要和文件一个后缀,storepass 是密码,validity 是有效期
还有一件事
jdk8以前的用jsk文件,包括jdk8,以后的后缀改成.PKCS12文件,也就是jdk8以后的这样搞

keytool -genkeypair -alias bxgd -keystore C:\Users\Administrator\Desktop\ssl\bxgd.pkcs12 -keypass bxzn1234 -storetype PKCS12  -storepass bxzn1234  -keyalg RSA -keysize 2048 -validity 3650

3.文件塞入

生成bxgd.jks文件,把这个文件放到resources下面
在这里插入图片描述

4.设置配置

配置文件,也就是上图框起来的文件上面一个application文件添加一些配置启用https

server.port=8080
server.ssl.enabled=true
server.ssl.key-store-type=JKS
server.ssl.key-store-password=bxzn6666
server.ssl.key-store=classpath:bxgd.jks

5.clean文件

记得clean文件,不然
在这里插入图片描述

最后重启项目,http已经无法访问了
在这里插入图片描述
https可以
在这里插入图片描述

补充:

最近一开始在研究如何转为https,后来发现我原本的项目由websocket连接,由于改成了https,那websocket就连不上去了,所以在这里就有两种方案:

1.不完全启用http连接

这就相当于把以前的http重新拿起来用,http是用的一个端口,https也是用一个端口,两者都可以用:
在这里插入图片描述
在这里插入图片描述
那么我们需要的步骤由以前三步:

1.重新生成信任文件

因为要方ip通行,所以上面生成文件的步骤一样,只不过

keytool -genkeypair -alias bxgd -keystore C:\Users\Administrator\Desktop\ssl\bxgd.jks -keypass bxzn1234 -storetype JKS  -storepass bxzn1234  -keyalg RSA -keysize 2048 -validity 3650

要变成

keytool -genkeypair -alias bxgd -keystore C:\Users\Administrator\Desktop\ssl\bxgd.jks -keypass bxzn1234 -storetype JKS  -storepass bxzn1234  -keyalg RSA -keysize 2048 -validity 3650 -ext SAN=IP:127.0.0.1

这个-ext SAN=IP:127.0.0.1的ip你们用自己的,别和我一样,我这里只是测试

2.配置设置

之前有说过,要配置文件在application文件里面:
在这里插入图片描述
做了可以跳过

3.配置 HTTP 连接器

可以在文件下新建一个HttpConfig配置文件

在这里插入图片描述

import org.apache.catalina.connector.Connector;
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 HttpConfig {
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createHttpConnector());
        return tomcat;
    }

    private Connector createHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8443);  // HTTP 端口
        connector.setSecure(false);
        return connector;
    }
}

最后试一下,两个都可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值