咱们写的接口默认都是http形式的,不过咱们的接口很容易被人抓包,并且一抓全是明文的挺尴尬的html
spring boot配置https生成证书大的方向有3种:spring
1.利用keytool本身生成证书windows
2.从免费的https网站申请证书,例如letsencrypt浏览器
3.买收费的证书tomcat
本人没钱,记录下第一种和第二种方法。安全
第一种方法:服务器
找个地方keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650,所有回车什么都不用填,最好选择是,而后输入密码;将生成的keystore.p12复杂到resources文件下,而后在配置文件application.yml下加入:app
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: trueui
启动项目,访问接口的时候在前面加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,这样咱们改革端口什么的很方便,不用再打包项目了