背景:项目如果遇到外网公开访问,或者是外围系统对接使用的是HTTPS,亦或者增加兼容http,都需要添加HTTPS渠道。
HTTPS 简介
Http超⽂本传输协议,明⽂传输 ,传输不安全,https在传输数据的时候会对数据进⾏加密;ssl协议、TLS(transport layer security)协
HTTPS和HTTP的主要区别
HTTPS协议使⽤时需要到电⼦商务认证授权机构(CA)申请SSL证书
HTTP默认使⽤8080端⼝,HTTPS默认使⽤8443端⼝
HTTPS则是具有SSL加密的安全性传输协议,对数据的传输进⾏加密,效果上相 当于HTTP的升级
版
HTTP的连接是⽆状态的,不安全的;HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、身
份认证的⽹络协议,⽐HTTP协议安全
HTTPS的请求原理
一:war包部署方式,Tomcat对HTTPS的支持
1) 使⽤ JDK 中的 keytool ⼯具⽣成免费的秘钥库⽂件(证书,=公司官方购买的证书)。
keytool -genkey -alias lagou -keyalg RSA -keystore lagou.keystore
2) 配置conf/server.xml
4)使⽤https协议访问8443端⼝(https://localhost:8443)。
二:springboot上jar包,使用Nginx支持添加
前提
已购买证书
在Java Web服务器上安装了证书,既支持了HTTPS
crt:证书、key:私钥;csr:请求文件(信息明文)
1、Nginx 使用 SSL 证书
1.1 在 Nginx 中新建ssl文件夹,将生成的crt和key放入其中,配置文件中加入以下代码
#修改Nginx的配置文件,安装SSL证书 cd /etc/nginx/conf.d vi default.conf listen 443 ssl http2;#https协议监听的端口号是443端口,基于http2进行工作的。 ssl_certificate /etc/nginx/ssl/nginx.crt; # 指向 ssl文件夹中的 crt 文件 ssl_certificate_key /etc/nginx/ssl/nginx.key; #指ssl 文件夹中的 key 文件 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #启用false start加速 ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on;
再查看一下
2.2 启动Nginx
#切换到可执行目录 cd /usr/sbin/ ./nginx #查看启动状态 ps -ef|grep nginx
2.3、测试访问
curl https://192.168.200.21
2.4、添加证书:
#安装 ca-certificates package: yum install ca-certificates #启用dynamic CA configuration feature: update-ca-trust force-enable #将证书文件放到 /etc/pki/ca-trust/source/anchors/ 目录下 mv /etc/pki/CA/cacert.pem /etc/pki/ca-trust/source/anchors/ #执行更新: update-ca-trust extract
2.5、修改本地host文
cd /etc vi hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.200.21 yj.com #对域名做IP映射
2.6、访问测试 curl https://yj.com



