总结Springboot Web项目如何集成HTTPS

总述

关于HTTPS的背景知识,本文略去,后续可能会另写这部分。本文只关注关于如何申请CSR,将CSR发送给CA,如何使用CA发回的证书,并集成到我们的SpringBoot项目中,本文根据本人实践编写。

1.什么是CSR

    证书签名请求 (CSR) 是一个编码的消息,其中包含公钥和其他相关信息,如通用名称、位置和 SAN 条目(如果适用)。在CSR生成过程中输入所有所需信息后,使用相应的私钥对请求进行数字签名。证书颁发机构 (CA) 使用 CSR 中的信息来验证并最终创建您的签名服务器证书。
“*.CSR”将被发送到CA机构。CA将通过CSR帮助生成证书,然后将证书发送给我们。证书通常包括“*.cer”、“root-CA.cer”、“issuing-CA.cer”等文件。cer是将在我们的项目上使用的证书。在接下来的步骤中,我将介绍更多关于它的细节以及如何使用它。

     通俗讲,CSR就是我们向CA申请certificates的申请书,里面包含了域名,私钥等信息。CA机构会根据CSR来生成certificates并发回给我们使用。

参考链接:What Is a CSR? - SSL.com

2.准备"*.CSR"文件和"*.key"文件

     本人推荐使用该网站生成CSR:点击CSR在线生成工具,当然这不是唯一的选项,你也可以使用如OpesnSSL,详情可以参照文章最后的链接“参考链接A”,你也可以使用其他平台,只要能保证信息安全即可。

     如图A所示,我们需要输入一些基本信息,如域名,私钥,加密算法等。然后点击“生成”即可,如图B所示。接下来只需要将生成的CSR和key copy出来,分别保存为*.CSR和*.key文件。也可以通过点击网站提供的下载功能下载。最后,将CSR文件发送给CA机构(专门从事证书生成,他们能保证证书的合法性)就行了,等着他们发回来证书即可。

     有2点需要注意的是:

      (1)必须牢记私钥密码,后面步骤中要用到,私钥是代表该证书只能为你所用的合法凭证

      (2)CSR文件和key文件缺一不可,注意不要遗漏。

图A

图B

3.收到CA发回的证书,集成到SpringBoot项目

   CA完成任务后,一般会发回下面几个证书

3.1 导出,生成p12文件

      打开cmd窗口,进入到证书所在的目录,然后执行下面的命令。这一步中命令行会提示输入密码,也就是我们在申请CSR的时候的私钥密码,当然,如果没有设置私钥密码,可能不需要输入(本人没有验证过)。

       openssl pkcs12 -export -in test.com.cer -inkey *.key -out demo.p12 -name Demo -CAfile Root-CA.cer -caname root

      可替换参数的部分,我将其标亮了。分别是我们的https证书名,密钥文件,p12文件名和项目名(起个名即可)。

      现在我们将在证书目录下看到生成了Demo.p12文件。并且下图中可以看到Demo.key就是我们在生成CSR的时候,同时生成的密钥文件。

3.2 导出,生成demo.jks文件

 在cmd窗口内,接着执行下面的命令。

keytool -importkeystore -destkeystore  Demo.jks -srckeystore Demo.p12 -srcstoretype pkcs12 -alias DemoProject

在该命令中,我们用到了上一步刚刚生成的Demo.p12文件,生成Demo.jks文件,并且起了个别名DemoProject.这一步会提示输入三次keystore(密钥库)的密码,该密码也就是后面要集成到Spring项目配置中的:server.ssl.key-store-password=123456

现在我们将在目录下看到多出来一个Demo.jks文件。

3.3 最后一步,将JKS文件集成到SpringBoot项目中

将Demo.jks文件配置到springboot project.可以将Demo.jks文件放到classpath下或指定目录也可以。

然后在application.properties文件中,配置如下,当然,如果你使用yaml文件,就按照yml格式保存即可。

server.port=8080

server.ssl.enabled= true

server.ssl.key-store=Demo.jks

server.ssl.key-store-password=123456

server.ssl.key-alias= DemoProject

server.ssl.key-store-type=JKS

最后,启动SpringBoot,访问项目。

Then Https will take affect after we start our server. the url will be like https://demoproject.com/helloWorld.

 参考链接A:How Do I Generate an SSL/TLS Certificate Signing Request (CSR) on My Server? - SSL.com

参考链接B:(94条消息) springboot通过已有的server.key,crt,ca证书生成jks文件并开启HTTPS 并启动双向认证+动态加载信任库_别卷了啊的博客-CSDN博客

参考链接C:

使用jdk生成自签发证书(过程总结) - 康纳酱 - 博客园 (cnblogs.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值