spring boot https --restful接口篇

时间:2022-03-09 20:13:02

我们写的接口默认都是http形式的,不过我们的接口很容易被人抓包,而且一抓全是明文的挺尴尬的

spring boot配置https生成证书大的方向有3种:

  1.利用keytool自己生成证书

  2.从免费的https网站申请证书,例如letsencrypt

  3.买收费的证书

本人没钱,记录下第一种和第二种方法。

第一种方法:

 找个地方keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650,全部回车什么都不用填,最好选择是,然后输入密码;将生成的keystore.p12复杂到resources文件下,然后在配置文件application.yml下加入:

server:
  port: 8080
ssl:
  key-store: classpath:keystore.p12
  key-store-password: yourpassword
  key-store-type: PKCS12
  key-alias: tomcat
security:
  require-ssl: true

security:
  require-ssl: true

启动项目,访问接口的时候在前面加https://才能访问,我们用抓包软件fiddler试着抓了下,明文的输入输出被加密了,看了下证书10年

第二种方法:

  下载letsencrypt的证书,这个其它地方有记录http://www.cnblogs.com/waterlufei/p/7261311.html,然后在/etc/letsencrypt/live/example.com目录执行:

openssl pkcs12 -export -in fullchain.pem \
-inkey privkey.pem \
-out keystore.p12 \
-name tomcat \
-CAfile chain.pem \
-caname root

输入确认密码,会产生keystore.p12文件,复制到windows,后面的步骤跟上面一样

最后看了下第二种方法的证书周期是3个月,但是直接在浏览器中访问接口地址还是和第一种方法一样https都是提示不安全,这是因为我们申请的证书是基于域名申请的,而我们本地不是这个域名,这不要紧,我们把项目部署到服务器后就好了,一路标绿,game over,接口和html页面都可以https了:

spring boot https --restful接口篇

spring boot https --restful接口篇

小技巧:我们启动的项目的时候如果不想每次都修改配置文件,可以在jar包同目录下新建config目录,然后在config下面新建application.yml,这样我们改革端口什么的很方便,不用再打包项目了