keycloak我们都以docker为例子,来讲一下https的部署。

  • https更安全,加密传输
  • kc有些cookies,需要https的支持

nginx部署

upstream keycloak {server 192.168.*.*:8080;}server { server_name kc.lind.com; listen 443 ssl; ssl_certificate /usr/local/nginx/tls.crt; ssl_certificate_key /usr/local/nginx/tls.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location /{ return 301 https://$server_name/auth; }location /auth {proxy_pass http://keycloak/auth;proxy_set_header Host $server_name;proxy_set_header X-Forwarded-Proto$scheme; #决定了keycloak.js文件是走https,这个比较特殊proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}

kc的docker部署

PROXY_ADDRESS_FORWARDING它的最终作用:

  1. 在负责在https请求转发到http时,keycloak所有资源(包括keycloak.js)都会改写成https协议,一般我们不
  2. 在服务端可以返回真实的客户端IP地址
  • docker代码
docker run --name keycloak -d -p 8080:8080 \-e KEYCLOAK_USER=admin \-e KEYCLOAK_PASSWORD=admin \-e DB_VENDOR=MYSQL \-e DB_ADDR=192.168.4.26 \-e DB_DATABASE=keycloak \-e DB_USER=*** \-e DB_PASSWORD=*** \-e JDBC_PARAMS='useSSL=false' \-e TZ=Asia/Shanghai \-e LANG=zh_CN.GB2312 \-e PROXY_ADDRESS_FORWARDING=true \ #接收反向代码的Forwarded-For-e KAFKA_HOST=192.168.4.26:9092 \-v /etc/localtime:/etc/localtime \--privileged=true \--restart=always \keycloak/phone

通过nginx的https访问keycloak

https://localhost/auth,它将会代理到localhost:8080这个端口上。

只要一步一个脚印,水滴石穿,吃透、搞懂、拿捏住是完全没有问题的!看到这里的都是妥妥的铁粉无疑了,底下是微信,找到的可是有大把源码,学习路线思维导图啥的,多的我就不透露,539413949看大家自己的积极性了啊,热爱所热爱的,学习伴随终生