• spring boot https --restful接口篇


    我们写的接口默认都是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了:

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

  • 相关阅读:
    2块硬盘宝塔只能读取一块?宝塔一键磁盘挂载命令
    Python爬虫入门笔记
    linux搭建web(网站)环境
    织梦dedecms管理模块管理不动卡死解决办法
    php7.1安装swoole扩展
    Linux下centos7、PHP7.1安装Redis扩展教程
    centos7利用yum安装lnmp的教程(linux+nginx+php7.1+mysql5.7)
    Linux各目录及每个目录的详细介绍
    Linux samba的配置和使用
    PHP abstract与interface之间的区别
  • 原文地址:https://www.cnblogs.com/waterlufei/p/7270611.html
Copyright © 2020-2023  润新知