SpringBoot将http转换成https

这篇具有很好参考价值的文章主要介绍了SpringBoot将http转换成https。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

不支持nginx代理

首先看项目,如果有nginx代理,则只需要改nginx配置即可。

如果没有nginx代理,则直接在springboot的resource下增加一个p12文件或者jks文件。

如何生成p12文件或者jks文件

这里用p12来进行演示:

首先要获得ssl证书,命令查看是否有openssl

SpringBoot将http转换成https,http,https,网络协议

这里我的版本是3,会有一个bug,当生成p12文件运行时会报错:ObjectIdentifier() – data isn’t an object ID (tag = 48)

需要去官网下载1版本的进行尝试{openssl官网: https://www.openssl.org/}

如果你目前有安全证书,key文件:

先把这两个文件放入一个文件夹下

SpringBoot将http转换成https,http,https,网络协议

 然后执行命令:

SpringBoot将http转换成https,http,https,网络协议

 这里会输入一个密码,需要记住,并且它不会显示出来。

SpringBoot将http转换成https,http,https,网络协议

 这样就成功了,返回文件夹会多一个p12文件

SpringBoot将http转换成https,http,https,网络协议

现在我来解释一下这个命令:

openssl  pkcs12

-export   输出

-clcerts

-in client.crt   安全证书的名称

-inkey client.key  key的名称

-out server.p12  输出的文件名

如果目前有pem文件和key文件:

先把这两个文件放入一个文件夹下

SpringBoot将http转换成https,http,https,网络协议

然后打开命令行输入:

openssl  pkcs12

-export   输出

-in client.pem   pem的名称

-inkey client.key  key的名称

-out key.p12  输出的文件名

SpringBoot将http转换成https,http,https,网络协议

之后和上面的一样会在文件夹中多出一个p12 

                             SpringBoot将http转换成https,http,https,网络协议

 修改spring boot

先将该p12文件复制到启动类下的resource下,和properties平级

然后在properties中增加如下配置:

//p12文件的绝对路径
server.ssl.key-store= classpath:server.p12
//生成p12文件的密码
server.ssl.key-store-password=生成p12文件的密码
//文件的类型 p12类型为PKCS12
server.ssl.key-store-type=PKCS12

最后clean一下,重新启动就可以了。

PS:如果启动后有报这个错误:DerInputStream.getLength(): lengthTag=111, too big.

在pom文件中进行如下修改:文章来源地址https://www.toymoban.com/news/detail-790207.html

 <build>
        <resources>
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>
                        ${project.basedir}/src/main/resources/**.p12
                    </exclude>
                </excludes>
            </resource>
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>
                        ${project.basedir}/src/main/resources/**.p12
                    </include>
                </includes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration><encoding>UTF-8</encoding>
                    <!-- 过滤后缀为pkcs12、jks的证书文件 -->
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>p12</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>

        </plugins>
    </build>

到了这里,关于SpringBoot将http转换成https的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包