如何为SpringBoot服务添加HTTPS证书
程序员文章站
2022-05-04 14:27:09
HTTPS是HTTP的安全版本,旨在提供数据传输层安全性(TLS)。当你的应用不使用HTTP协议的时候,浏览器地址栏就会出现一个不安全的提示。HTTPS加密每个数据包以安全方式进行传输,并保护敏感数据免受窃听者或黑客的攻击。 您可以通过在Web应用程序上安装SSL证书来实现HTTPS,互联网上受信任 ......
https是http的安全版本,旨在提供数据传输层安全性(tls)。当你的应用不使用http协议的时候,浏览器地址栏就会出现一个不安全的提示。https加密每个数据包以安全方式进行传输,并保护敏感数据免受窃听者或黑客的攻击。
您可以通过在web应用程序上安装ssl证书来实现https,互联网上受信任的证书通常是需要(ca)颁发的证书。为了学习目的,您也可以使用自签名证书,比如:使用java keytool生成自签名证书。
一、自签名证书
您可以使用位于jdk bin文件夹下的keytool生成证书。例如,c:\program files\java\jdk1.8.0_161\bin
。可以使用两种自签名证书,如下所示。
- 通过您自己的java应用程序可以轻松访问jks(java密钥库)。jks仅限于java,不能从java外部访问。
- pkcs12:该证书使用的公钥加密标准与语言无关,用于存储加密的私钥和证书。
本作者技术博客是:字母哥博客(z i m u g 点 康 姆),里面包含精品技术文章集合,欢迎您的访问。
二、如何生成自签名证书
在windows的搜索字段中键入cmd以找到命令提示符,然后以“以管理员身份运行”右键单击。使用如下的keytool命令。您可以提及所需的证书名称,如下所示。
c:\program files\java\jdk1.8.0_161\bin> keytool -genkeypair -alias selfsigned_localhost_sslserver -keyalg rsa -keysize 2048 -storetype pkcs12 -keystore ebininfosoft-ssl-key.p12 -validity 3650
自签名证书受密码保护。命令回车之后,会提示输入密码(这个密码要记住,后面会用到)和其他详细信息,如以下屏幕截图所示。
完成上述步骤后,便会创建pks密钥并将其存储在jdk bin文件夹下。
三、将ssl应用于spring boot应用程序
- 从jdk bin文件夹复制ebininfosoft-ssl-key并将其放在spring boot application的src / main / resources下。
- 如下所示,将ssl密钥信息添加到application.properties中。
#ssl key info security.require-ssl=true server.ssl.key-store-password=生成证书的密码 server.ssl.key-store=src/main/resources/ebininfosoft-ssl-key.p12 server.ssl.key-store-type=pkcs12
四、写一个controller做简单的测试
@restcontroller @requestmapping("/home") public class homecontroller { @requestmapping(value = "/", method = requestmethod.get) public string hello() { return "welcome to spring boot application"; } }
如果您在不使用https的情况下访问rest endpoint,则会在浏览器中收到“bad request”消息。如果您使用https来访问url,则会得到如下响应:"welcome to spring boot application"
欢迎关注我的博客,里面有很多精品合集
- 本文转载注明出处(必须带连接,不能只转文字):。
下一篇: Mongodb学习总结