1、https与http的区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
2、申请ssl证书
申请ssl证书可以在腾讯云或者阿里云上免费申请,也可以使用java提供的工具本地申请,但本地申请的证书是不受信任的。
本地使用命令行,切换到/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home目录下,使用命令
keytool -genkey -alias demo -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore demo.p12 -validity 5000
windows可以使用
keytool.exe -genkey -alias demo -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore demo.p12 -validity 3650
解释:
-genkey: 生成SSL证书
-alias: 证书别名 后面配置要用
-storetype: 秘钥仓库类型
-keyalg: 生成证书算法
-keysize: 证书大小
-keystore: 生成证书保存路径
-validity: 证书有效期
执行命令后,需要设置密码,密码最小长度为六位,密码是不可见,后续输入一些问题答案,
直到[否]的时候输入y,即可生成证书。
3、springboot项目集成
回到springboot项目,将生成的证书复制一份到resources目录下,在配置文件中添加如下配置,
# SSL
server.ssl.key-store=classpath:demo.p12 # 引入证书
server.ssl.key-alias=demo # 证书别名
server.ssl.key-store-password=123456 # 密钥口令
接下来启动项目就可以使用https访问了
注意:https默认是443端口,http是80端口